Closed yc-2503 closed 7 months ago
CommandHandler
负责操作
领域模型,也就是说,它负责从仓储
中拿出领域模型实例,操作模型实例,然后保存模型实例。
基于这个逻辑,任何不属于领域模型的所负责的逻辑,都将由CommandHandler
来负责。
而DomainEventHandler
,则类似于Controller,负责发起命令,DomainEventHandler
不应该操作模型,所有对模型的操作,都应由CommandHandler
来做。
总结一下:
CommandHandler
负责操作领域模型DomainEventHandler
负责发起命令
Command 的 Handler 中要处理业务逻辑么? 如果要处理,那又将领域的充血模型与Handler类增加了额外的关联,增加了复杂度。 如果不处理业务逻辑,那Handler将只是薄薄的一层,因为领域间由领域事件负责处理,服务之间由集成事件负责处理,因此也没有太多需要 Handler 协调的事情。