【发布时间】:2021-05-19 22:19:14
【问题描述】:
我对发布我的领域事件的最佳方法有疑问。我有两个用例:
- 用户可以创建带有答案的问题
- 用户可以为给定问题添加答案
其中一个不变量是:
- 一个问题必须至少有 2 个答案,最多有 5 个答案。
我设计了一个聚合 Question 和一个 Answer 实体列表,我验证了它的 Question 构造函数不变量。
与第一个用例有关,我的疑问与我应该发布的领域事件有关。
我的第一个方法是这个领域事件:
public class QuestionCreated {
private final String questionText;
private final List<Answer> answers;
}
我对@987654325@ 属性感觉不太好,因为它是Answer 实体的列表,但我不知道如何做得更好。
或者第二种方法,你会做两个域事件QuestionCreated 和AnswerCreated,当我创建一个问题时,聚合将发布一个QuestionCreated 事件和一个AnswerCreated 为answers 列表中的每个答案?
对于第二个用例,添加问题的答案,遵循聚合原则,我将使用新答案保存 Question 聚合。在这种情况下,我也对要发布的域事件有疑问,QuestionUpdated,类似于QuestionCreated,或AnswerAdded,只有答案信息。
谢谢!
【问题讨论】:
标签: events domain-driven-design