0

对于这个特定场景,我有三个实体:

  • 问题(聚合根)
  • 问题反馈(不是聚合根)
  • QuestionFeedbackCategory(聚合根)

由于 QuestionFeedback 在 Question 中,QuestionFeedbackCategory 是否也可以保存 QuestionFeedback 对象的列表?或者 QuestionFeedbackCategory 是否只需要处理 Question 对象?

4

2 回答 2

0

如果 Question 和 QuestionFeedback 都有类别并且假设每个只能有一个类别,我会这样建模

public class Question {
    ...
    CategoryId categoryId;
    Set<QuestionFeedback> feedback;
    ...
} 

public class QuestionFeedback {
    ...
    CategoryId categoryId;
    ...
} 

public class Category {
    CategoryId id;
    String name;
    String description;
}

您不必将 AR 本身“放入”另一个 AR/VO。您可以仅引用其充当 id 的值对象。

编辑:阅读这里提到的三部分文章http://dddcommunity.org/library/vernon_2011。来自 ORM 的思维模式,我曾经对如何建模这些类型的关系感到困惑。

于 2013-01-22T23:30:05.927 回答
0

聚合根只能在以下场景中与外部通信:

  • 通过聚合内的事件
  • 通过构造函数注入

但在上述所有选项中,不允许引用,只能使用数组(水合对象)。

于 2017-10-07T08:49:32.400 回答