我不知道是否应该拥有不总是设置的属性的域模型,这是一种代码嗅探或设计错误。我举一个例子:
我有一个应用程序,可以用Rss阅读互联网杂志。对于域模型,我使用用例。我简单地说:
为此,我提取了以下实体:图书馆、杂志、杂志简介、杂志新闻。
我的课程是:
class Magazine
private int id; // BD id row
private MagazineProfile magazineProfile;
private List<MagazineNews> news;
class MagazineProfile
private String title;
private String webUrl;
[...]
class MagazineNews
private String title;
private String body;
private Date pubDate;
[...]在我的应用程序的某些地方,我将只浏览杂志使用他们的杂志配置文件(显示所有杂志的列表),在其他点,我将只探索新闻,在另一些时间,我将探索新闻和杂志简介。
根据具体情况,有时,我的对象magazine将设置magazineProfile news属性或为空属性。
所以我的问题是,如果这个设计是一个错误的方法,它的属性将根据用户正在浏览的窗口来建立。我是否应该只处理我感兴趣的对象,在我的例子中,magazineProfile和news?
发布于 2014-11-25 13:09:15
我不认为您的设计是一个问题,但实现会给您带来一些问题。使用空对象模式填充否则会丢失的字段。
在您的示例中,“缺失”MagazineProfile将由返回空title、webUrl等的单例标记。
https://softwareengineering.stackexchange.com/questions/263731
复制相似问题