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