建议的方法来创建聚合实体

时间:2011-01-27 19:21:59

标签: domain-driven-design

假设我有总名称" ABCD "这是根实体和另一个实体" IJKL "在那个聚合。我的问题是,创建IJKL实体并在数据库中持久化的推荐方法是什么

1 个答案:

答案 0 :(得分:0)

根据聚合的定义,IJKL的生命周期与ABCD的生命周期相关联,因此您不应该明确地创建IJKL;相反,你应该在ABCD上调用逻辑,它将决定(内部)如何/何时处理IJKL。

对于新实例,聚合创建逻辑应该封装在工厂中,并且该工厂将负责与集合的其余部分一起“新建”IJKL实例。

对于持久性问题(加载/保存现有实体),逻辑应该是存储库的SaveABCD方法的一部分,该方法负责整个聚合的持久性。

如果您一直发现自己需要直接操作IJKL,那么您的聚合就会出现问题 - ABCD不是正确的根,或者IJKL需要在单独的聚合中。