【发布时间】:2020-01-17 16:22:05
【问题描述】:
最近我被介绍到命令调度器模式,它可以帮助我们将命令与基于领域驱动设计方法和 CQRS 模式的项目中的命令处理程序分离。
无论如何,我把它与中介者设计模式混淆了。
Robert Harvey has already answered关于Command Dispatcher模式的问题如下:
Command Dispatcher 是一个将 Action-Request 与 适当的动作处理程序。它的目的是解耦 来自发送和接收对象的命令操作,以便 双方都不了解对方。
根据维基百科,The mediator pattern 被描述为:
使用中介者模式,对象之间的通信是 封装在中介对象中。对象不再通信 直接相互交流,而是通过 调解人。这减少了通信对象之间的依赖关系, 从而减少耦合。
因此,据我了解,他们都将命令与指挥官分开,这允许我们与调用者分离。
我在 Github 上看到了一些项目,它们使用命令调度器模式为请求的命令调用所需的处理程序,而其他项目则使用中介器模式来调度消息。 (例如,在大多数 DotNet 项目中,MediatR 库用于满足这一点。
但是,我想知道在我们基于 DDD 方法和 CQRS 模式的项目中使用一种模式与另一种模式有什么区别和好处?
【问题讨论】: