POJOs(实体?)具有不同的属性数量,但具有相同的“含义”(如成为一篇文章)。如何设计?

问题描述:

我举个小例子:POJOs(实体?)具有不同的属性数量,但具有相同的“含义”(如成为一篇文章)。如何设计?

我们有一个简单的架构类似:

GUI - > 域< - DAL

与图形用户界面和DAL对域名指向依存性的。

现在该域名包含实体,假设下面的“订单”实体:

public class Order { 
    private String name; 
    private Collection<Article> articles; 
    ...getter setters etc 
} 

现在想象一下2种情况,一是我们需要的物品(比如图形用户界面层只是要求进行订单的列表,需要除了文章以外的所有订单细节)以及我们不需要它们的一个订单(包括所有文章的一个订单)。

我该如何最好地设计它? 2个POJO?遗产?

在某些情况下,为班级使用两个(或更多)接口是明智的。特别是如果实体处于同一个数据库表中,但您只想限制使用情况,那么确实不存在(技术上讲)几种类型的实体。

+0

因此,理论上可以传递一个Order Object而不实际包含集合中的任何文章? 或者如你所说,它会更好,在它前面放置一个接口来隐藏空集合? –

+0

如果在业务逻辑中使订单没有文章是有意义的,那么您有两种选择。将空集合保留在那里,或者使用一个接口来强调这个订单没有文章的事实,并且它永远不会拥有它们。 – Kayaman