我正在为一些各种c#项目构建一个自定义通用域模型。我现在正在努力解决的问题是模型结构的选择。要么我做父母,孩子,祖先等的分层模型,要么是平面更像图形的结构。层次结构我的意思是我可以编写Entity.Parent,并获取父和图,我有链接而不是关系。
这是一个更简单,更不容易出错的平面图。例如,您可以按一些随机顺序一次加载一个实体,而不必将它们组装成正确的结构。
但是,分层域的概念也很有吸引力。它结构合理,井井有条。具有分层域的一个好处是您可以从父级或祖先继承属性。例如,您可以将删除状态继承到后代中。有一个平面图表这不会那么容易。此外,这要求所有实体的所有祖先在任何时候都被加载,这当然是一个缺点。
所以我的问题是其他有利于分层域名的好处是什么?除了继承祖先的属性以及图形中的消息传递之外,我还没有提出任何建议。例如,如果实体想要对后代实体的更改做出反应。还有更多好处吗?我不确定我是否真的需要以上所以如果没有更多的好处,我认为我会选择扁平结构,因为它更容易使用。
答案 0 :(得分:0)
由于您标记了DDD,我会询问给定域的聚合根是什么,并让它做出决定。