对于这个特定场景,我有三个实体:
- 问题(聚合根)
- 问题反馈(不是聚合根)
- QuestionFeedbackCategory(聚合根)
由于 QuestionFeedback 在 Question 中,QuestionFeedbackCategory 是否也可以保存 QuestionFeedback 对象的列表?或者 QuestionFeedbackCategory 是否只需要处理 Question 对象?
对于这个特定场景,我有三个实体:
由于 QuestionFeedback 在 Question 中,QuestionFeedbackCategory 是否也可以保存 QuestionFeedback 对象的列表?或者 QuestionFeedbackCategory 是否只需要处理 Question 对象?
如果 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 的思维模式,我曾经对如何建模这些类型的关系感到困惑。
聚合根只能在以下场景中与外部通信:
但在上述所有选项中,不允许引用,只能使用数组(水合对象)。