【发布时间】:2012-07-20 14:50:14
【问题描述】:
在设计你的领域模型时,应该坚持代表问题领域的东西,并且领域模型不应该包含审计信息。
所以,如果我在设计一只猫,它可能看起来像这样:
public Cat {
private Color furColor;
private Color eyeColor;
private boolean isDeclawed;
etc...
}
我不应该有像“updateDate”和“createTime”这样的属性,对吗?
现在,如果 Web 应用程序要在屏幕上显示一张猫的表格,您可能会有类似的内容:
名称眼睛颜色爪?最近更新时间 ------ --------- ------ ------------ 蓬松的绿色 No 10/31/2012 ETC...那么,如果您不在域模型中保留上次更新时间,那么如何(正确地)将该数据获取到页面?
显然,我可能有一个设计不佳的域模型,但我想做得更好。
我曾考虑创建一个接受泛型的对象,以便我可以保持我的域模型的原始状态。 即
public PersistableObject<T,K> {
private T domainObject;
private Date updateDate;
private User updateUser;
getters, setters, etc...
}
但是,我恐怕会遇到一些问题。
我在“域模型”和“更新日期”等方面进行了很多搜索......但我认为我错过了正确的术语。
有人能指出我正确的方向吗?
【问题讨论】:
-
深入挖掘,为什么需要审计线索?为什么需要显示“上次更新”列?
标签: architecture domain-driven-design audit