上下文敏感表示的设计模式

时间:2015-05-27 19:28:49

标签: java design-patterns

问题

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

定义

Representation :可用的getter及其返回的值。

上下文:对象的请求上下文。

示例

网站发布待售房屋。

访客用户拥有House.getPrice(),其中X号房屋返回100,000。

注册用户有House.getPrice(),其中X号房屋返回95,000。

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

目的

这个Rest-service的实际用途,用于使用JAX-B自动映射到XML / JSON。

注意

我没有要求代码来实现这一点。我只是想知道是否有一个设计模式,以及它的名称。

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

为什么你不能拥有HouseFactory或类似产生IHouse实施的RegisteredUserHouse。然后,您可以使用GuestUserHouse和{{1}}等实现来封装您描述的逻辑。

然后根据用户是否注册选择要从工厂返回的实现。

答案 2 :(得分:0)

我认为你试着在这里解决两个不同的任务。

如果您需要根据用户是否注册而仅向用户显示有关房屋的部分信息,那么您应该在表示层(生成界面并应用安全约束)时执行此操作,而不是拖动此进入你的域层。

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