上下文相关表示的设计模式
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
实现。然后你可以有像 RegisteredUserHouse
和 GuestUserHouse
这样的实现,它们封装了你描述的逻辑。
然后根据用户是否注册,选择出厂return的实现即可。
我想你在这里尝试解决两个不同的任务。
当您只需要根据用户是否注册向用户显示有关房屋的部分信息时,您应该在表示层执行此操作(在生成界面和应用安全约束时),而不是将其拖到您的域层中。
当您需要根据用户是否注册来应用特定的价格或折扣策略时,这似乎是一个域层问题,应该使用策略模式来解决。
问题
是否有设计模式允许我创建 类 的上下文相关表示?
定义
表示:可用的吸气剂,以及它们的值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
实现。然后你可以有像 RegisteredUserHouse
和 GuestUserHouse
这样的实现,它们封装了你描述的逻辑。
然后根据用户是否注册,选择出厂return的实现即可。
我想你在这里尝试解决两个不同的任务。
当您只需要根据用户是否注册向用户显示有关房屋的部分信息时,您应该在表示层执行此操作(在生成界面和应用安全约束时),而不是将其拖到您的域层中。
当您需要根据用户是否注册来应用特定的价格或折扣策略时,这似乎是一个域层问题,应该使用策略模式来解决。