我将从一个小例子开始:
想象一个有两个实体的应用程序。
实体A-1---N->实体B-1---N->实体
假设我们有一个返回enityc实例列表的服务方法。在ui中,我们希望显示entityc,但也要向实体中添加一些仅与ui相关的附加信息(可能是css类之类的)。解决这个问题的一个常见方法是创建一个包装器arround entity,它还可以携带附加信息。

public class EntityCWrapper implements EntityC, AdditionalInfo { ...}

或者使用传输对象作为简单的数据结构:
public EntityTO {
  public EntityC entity;
  public AdditionalInfo info;
}

但是,如果服务返回一个enititya实例列表,并且我们需要将additionalinfo附加到实例图中的所有实体(包括entityb和entityc的引用实体实例),该怎么办?
有人有什么想法或者可以给我指一个适合这种情况的设计模式吗?

最佳答案

看看Role Object Pattern
它描述了如何用不同的东西(称为角色)扩展一个对象。
这个模式更多的是关于如何添加商业逻辑(这就是为什么它被称为角色),但是这个想法可能会帮助你。

关于java - 在运行时使用附加信息来增强Java中现有数据结构的设计模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9472030/

10-10 10:57