情况:
为了处理领域事件,Jimmy Bogart提出了一种在聚合中存储事件的方法。
在我看来,这是一种非常方便的方法。但是,域服务中出现域事件的情况呢?
域服务不应该有状态(无状态)。在这种情况下,理论上必须将 IDispatcher 事件调度程序注入到此类服务的构造函数中。
问题:
为了避免引入事件调度程序的域服务,建议的替代方法是正确的:
- 将最后一次操作的事件保存在域服务中。但是,这将违反域服务的无状态原则。
- 根据操作结果从服务方法返回事件列表(在返回方法中或以其他方式,取决于编程语言的能力)。