【发布时间】:2018-10-23 18:21:13
【问题描述】:
我有一个现有的 REST 应用程序,它将 POJO(例如贸易对象)缓存到 ehcache,许多其他应用程序正在使用它。有些人正在将该 Trade 对象发送到 REST 服务,以便将其持久化到缓存和数据库中,有些人正在使用 REST 服务对此缓存进行获取操作。
public class Trade implements Serializable {
private static final long serialVersionUID = -92565215465632589L;
private String tradeNo = new String();
private String isin = new String();
private String quantity = new String();
.... //getters and setters
}
现在我想在我们的应用程序中再添加一个组件,它使用上述许多交易属性,并且我还想添加许多新组件作为功能的一部分。我不想为现有的 Trade POJO 添加新属性,因为它也会影响现有代码。我应该创建新的 POJO 来扩展 Trade 并添加新属性并将这个新的 POJO 持久化到缓存中吗?使用这种方法,我将在缓存中拥有几乎相似的对象:-(。还有其他好的方法或设计模式可用吗?
public class ExtendedTrade extends Trade {
private String operation = new String();
private String dealType = new String();
private String identifier = new String();
.... //getters and setters
}
上面是我在方法中描述的ExtendedTrade。
还请建议任何设计,以便我可以避免缓存这种类似类型的对象。
【问题讨论】:
-
你有一种用
new String();初始化字符串的奇怪风格。 -
如果没有任何多态要求,则将
Trade设为新类的成员。
标签: java oop object design-patterns state