我将从一个小例子开始:
想象一个具有几个实体的应用程序。
实体A -1---n-> 实体B -1---n-> 实体C
假设我们有一个返回 EnityC 实例列表的服务方法。在 UI 中,我们想要显示 EntityC,但也向仅与 UI 相关的实体添加一些附加信息(可能是 css 类等)。解决此问题的常见方法是创建一个也可以携带附加信息的 EntityC 包装器。
public class EntityCWrapper implements EntityC, AdditionalInfo { ...}
或者可以使用传输对象作为简单的数据结构:
public EntityTO {
public EntityC entity;
public AdditionalInfo info;
}
但是,如果服务返回 EnitityA 实例的列表,并且我们需要将 AdditionalInfo 附加到实例图中的所有实体(包括 EntityB 和 EntityC 引用的实体实例),该怎么办?
有谁有想法或可以指出我适合这种情况的设计模式?
看看角色对象模式 http://hillside.net/plop/plop97/Proceedings/riehle.pdf.
它描述了如何使用不同的东西(称为角色)来扩展对象。
该模式更多地是关于如何添加业务逻辑(这就是它被称为角色的原因),但这个想法可能对您有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)