2016-08-31 3 views
0

명령을 보내고 처리하거나 명령을 처리하기 위해 CommandBus를 사용해야합니까?CommandBus의 책임

그것은 다음과 같은 인터페이스를 정의하기 위해 맞습니다 :

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

는 인터페이스 전송 및 처리 방법을 모두 가지고 맞습니까?

보내기는 Commandbus는 다른 해당 명령 핸들러에 파견 명령에 책임이 가능

답변

2

경우 특정 명령을 처리 할 수 ​​

핸들 버스 또는 특정받는 사람을 통해 명령을 보낼 책임이 있습니다. 명령 처리는 대개 명령 버스의 책임이 아닙니다.

0

명령 버스는

  1. 파견 명령
  2. 등록/핸들러의 발견에 대한 책임을 질 것입니다.

명령 버스는가 전달 될 때 실제로 명령을 처리 할 핸들러의 등록을 유지하기 위해 필요, 그래서는 핸들러에 전송하는 명령을 알 필요가있다. 코멘트에서 언급 한 바와 같이

, 이것은 가능성이 별도의 인터페이스, 또는 CommandBus이 핸들러를 알고하는 것이 사실이다

+0

동안 다른 검색 스타일의 과정을 통해 수행 할 것, 인터페이스 분리의 원칙은 우리에게 알려줍니다 'Register' 메소드는 단순히 버스에 명령을 보내려는 클라이언트에게는 그리 관심이 없다. (특히 CommandBus는 모듈 검색과 같은 다른 방법이나 명령 처리기 검색을 사용할 수 있으므로 인터페이스의 등록 방법이 쓸모 없게됩니다.) –

+0

예 – tomliversidge