上下文相关表示的设计模式

Design Pattern for Context-sensitive representation

问题

是否有设计模式允许我创建 类 的上下文相关表示?

定义

表示:可用的吸气剂,以及它们的值return。

Context:对象的请求上下文。

例子

某网站发布待售房屋。

一位来宾用户拥有 House.getPrice(),其中 return100,000 美元用于房屋 X。

一个注册用户有 House.getPrice(),其中 return95,000 房子 X。

注册用户有 House.getLandLordEmail(),访客用户没有。

目的

这个 Rest 服务的实际用途,利用自动映射到 XML/JSON 和 JAX-B。

备注

我不是要代码来实现这个。我只想知道有没有这种设计模式,叫什么。

我想说 Strategy Pattern and the Decorator Pattern 都适用。

例如,这里有一个 discussion of pricing models using strategies

为什么你不能有一个 HouseFactory 或类似的东西来产生 IHouse 实现。然后你可以有像 RegisteredUserHouseGuestUserHouse 这样的实现,它们封装了你描述的逻辑。

然后根据用户是否注册,选择出厂return的实现即可。

我想你在这里尝试解决两个不同的任务。

当您只需要根据用户是否注册向用户显示有关房屋的部分信息时,您应该在表示层执行此操作(在生成界面和应用安全约束时),而不是将其拖到您的域层中。

当您需要根据用户是否注册来应用特定的价格或折扣策略时,这似乎是一个域层问题,应该使用策略模式来解决。