有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

DDD中的java聚合对象

我创建了一个名为Question的聚合类。它包含对AnswerCategoryFeedback对象的引用。QuestionRepository应该是包含查询与问题相关的数据库的所有方法以及查询反馈、答案等的所有方法的类吗?或者这些应该是独立的类,比如QuestionRepository、FeedbackRepository等等


共 (2) 个答案

  1. # 1 楼答案

    DDD web site开始:

    For each type of object that needs global access, create an object that can provide the illusion of an in-memory collection of all objects of that type.

    当您需要直接访问某个实体时,也就是说,除了直接从持久性存储中获取实体之外,没有其他方便的方法来获取该实体时,可以使用存储库。相反,如果你认为实体大部分时间是通过遍历另一个你已经掌握的对象而获得的,那么就不需要存储库了。这里的答案、分类和反馈似乎都是如此

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

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

  2. # 2 楼答案

    根据你解释的方式,我假设每个问题都会有一个或多个答案,一个或多个反馈,并且该问题属于特定类别

    由于答案和反馈取决于问题,并且不能独立存在,因此您可以为这3个实体创建一个问题存储库

    说到类别,类别更像是一个静态实体,IMO是一个静态列表,所以所有这些静态实体都可以在一个静态存储库中分组在一起