知识卡片
用事件类型而非结果值表达操作分支
内容
两种操作结果的事件有两种定义形式:将结果作为事件携带值(PaymentCompleted+OperationResult枚举)会减少事件数,但订阅者须按值做分支判断;用事件类型直接表现结果(PaymentSucceeded/PaymentFailed)则订阅者可为各事件分别编写处理方法,保证订阅代码简洁。
参考来源
- 位置:《解构领域驱动设计》第11章11.2.2(源文件:_epub-src/OEBPS/022.xhtml)
- 结论依据:PaymentCompleted按值分支与PaymentSucceeded/PaymentFailed按类型分派的对比示例。
- 原始内容:要保证订阅者代码的简洁性,可以采用第二种形式,即通过事件类型直接表现操作的结果。