如何确定聚合根

时间:2011-02-03 03:38:53

标签: domain-driven-design ddd-repositories aggregateroot

我有一个工程师访问气井的应用程序。他可以通过选择7种特征的任意组合来查看井列表。特征是公司,州,县,流域,分公司,油田,运营商各自的订单。应用程序启动,我需要检索公司列表。用户看到的公司基于其安全凭证。什么是我的汇总根/域对象,它以我的存储库为基础。我首先想到了用户,但我从未检索过任何关于用户的信息。这些项目和一些其他属性的组合统称为井头信息。那会是我的存储库的聚合根或域对象吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

通过这样的简短描述,它只能是你的设计如何。

当我读到它时,你真的对给定工程师的油井感兴趣。 (你提到的用户是工程师吗?)

因此,第一次尝试可以将井的概念建模为聚合根。

所以也许是这样的:

ICollection<Well> wells = WellRepository.GetWellsForEngineer(engineerInstance);

也许您的工程师与特征对象相关联。 无论哪种方式,您都必须将工程师与给定公司,州等的井相关联,以便能够提取工程师实际分配给哪些井。

如果这对你没有帮助,也许你可以详细说明你的域名。