DDD中的聚合对象

Luc*_*uke 5 java domain-driven-design java-ee

我创建了一个名为的聚合类Question.这包含引用Answer,Category,Feedback的对象.QuestionRepository应该是包含查询与问题相关的数据库的所有方法的类,还包括查询反馈,答案等的所有方法?或者它们应该是单独的类,例如QuestionRepository,FeedbackRepository等.

gui*_*e31 1

来自DDD 网站

对于需要全局访问的每种类型的对象,创建一个可以提供该类型所有对象的内存集合的幻觉的对象。

当您需要直接访问实体时,即除了直接从持久性存储中获取实体之外,没有其他方便的方法来获取该实体时,可以使用存储库。相反,如果您认为该实体大多数时候可以通过遍历您手头已有的另一个对象轻松获得,那么就不需要存储库。这里的答案、类别和反馈似乎就是这种情况。

通常存储库仅用于聚合根,但也可能有例外。

我建议您在开始构建领域模型之前阅读 DDD 蓝皮书或一些教程,以对 DDD 构建块有基本的理解。