我将以一个小例子开始:
想象一下一个带有几个实体的应用程序。
EntityA -1---n-> EntityB -1---n-> EntityC
假设我们有一个服务方法,返回一个EnityC实例列表。在UI中,我们想要显示EntityC,但还要为UI添加一些仅与UI相关的附加信息(例如css类)。解决这个问题的常见方法是创建一个包装器来包装EntityC,它也可以携带附加信息。
或者使用转移对象作为简单的数据结构:
想象一下一个带有几个实体的应用程序。
EntityA -1---n-> EntityB -1---n-> EntityC
假设我们有一个服务方法,返回一个EnityC实例列表。在UI中,我们想要显示EntityC,但还要为UI添加一些仅与UI相关的附加信息(例如css类)。解决这个问题的常见方法是创建一个包装器来包装EntityC,它也可以携带附加信息。
public class EntityCWrapper implements EntityC, AdditionalInfo { ...}
或者使用转移对象作为简单的数据结构:
public EntityTO {
public EntityC entity;
public AdditionalInfo info;
}
但是,如果服务返回一个实体A实例的列表,并且我们需要将AdditionalInfo附加到实例图中的所有实体(包括实体B和实体C的引用实例)怎么办?
有没有任何想法或者能够指出适用于这种情况的设计模式的人?