CommandBus的责任

时间:2016-08-31 21:26:44

标签: cqrs

CommandBus的责任是发送和处理命令还是只处理命令?

定义如下界面是正确的:

interface ICommandBus
{
    void SendCommand(ICommand commad);
    void HandleCommand(ICommand commad);
}

接口是否同时发送和处理方法是否正确?

发送负责通过总线或特定收件人发送命令

尽可能处理特定命令的句柄

2 个答案:

答案 0 :(得分:2)

Commandbus有责任将命令分派给不同的相应命令处理程序。处理命令通常不是Commandbus的责任。

答案 1 :(得分:0)

命令总线将负责

  1. 调度命令
  2. 注册/发现处理程序。
  3. 命令总线需要保存一个处理程序寄存器,这些处理程序在调度时实际处理命令,因此需要知道将哪些命令发送给哪些处理程序。

    正如评论中所提到的,这可能是一个单独的界面,或通过其他一些发现风格过程完成