在设计领域模型时,应该坚持使用表示问题领域的实体和概念,域模型不应包含审计信息。
因此,如果我正在设计一只猫,它可能看起来像这样:
public Cat {
private Color furColor;
private Color eyeColor;
private boolean isDeclawed;
etc...
}
我不应该有像“updateDate”和“createTime”这样的属性,对吗?
现在,如果一个网络应用程序要在屏幕上显示一张猫的表格,你可能会有以下内容:
名字 眼睛颜色 有爪子吗? 最后更新时间 ------ --------- ------ ------------ Fluffy 绿色 否 2012年10月31日 等等...
那么,如果您不在域模型中保留最后更新时间,如何(正确地)将数据传递到页面上呢?
显然,我可以拥有一个设计不良的域模型,但我想做得更好。
我曾考虑过创建一个接受泛型的对象,这样我就可以保持我的域模型的清晰。
public PersistableObject<T,K> {
private T domainObject;
private Date updateDate;
private User updateUser;
getters, setters, etc...
}
然而,我担心在这方面会遇到一些问题。
我已经做过很多"领域模型"和"更新日期"等方面的搜索,但我觉得我错过了正确的术语。
有人能指点我一下吗?