【发布时间】:2013-11-19 20:49:53
【问题描述】:
我正在构建一个系统来管理人员信息。我有一个不断增长的聚合根,称为 Person。它现在有数百个相关的对象、名称、地址、技能、缺勤等。我担心的是,Person AR 不仅会破坏 SRP,而且会随着越来越多的东西(尤其是集合)添加到其中而产生性能问题。
我看不出如何使用 DDD 将其分解为更小的对象。以缺席为例。 Person 有一组缺勤记录(开始日期、结束日期、原因)。这些当前通过人员(BookAbsence、ChangeAbsence、CancelAbsence)进行管理。添加缺勤时,我需要针对所有其他缺勤进行验证,因此我需要一个可以访问其他缺勤的对象才能进行此验证。
我在这里遗漏了什么吗?是否还有其他我没有发现的 AR?过去我会通过“AbsenceManager”服务来完成这项工作,但我想使用 DDD 来完成。
我对 DDD 还很陌生,所以也许我遗漏了一些东西。
非常感谢....
【问题讨论】:
-
也许
Absence是另一个 AR。在缺勤时,您需要通过Person强制执行哪些不变量?
标签: domain-driven-design aggregateroot