2011-07-30 121 views

回答

1

實際上,區別不在於結構和實現,而是概念 - 這兩種結構都代表不同的概念。

消息 - 即傳輸某種信息的結構

命令 - 觸發某種動作

也就是說,命令是一種消息的結構,因爲它至少傳輸關於動作的信息(並且在大多數情況下還有其他參數)。 在實現方面,MessageHandlers和CommandHandlers看起來非常相似,取決於你想要對這些信息做什麼。

實例

UserRegisteredMessage(用戶名) - ,通知有關在系統中註冊所使用的消息,處理程序可以用於顯示在UI此信息

RegisterUserCommand(用戶名) - 一個命令,指示我們的系統註冊一個用戶,這可能涉及某種額外的行爲(如檢查唯一性),並可能會失敗。

1

在我的經驗中,主要是語義和模式的放置位置。消息可能會或可能不會產生副作用,其中一個命令意味着它會。另外,我認爲命令模式是作爲客戶端上的UI模式(通常,雖然不總是),其中消息模式意味着網絡跳躍的潛力。

此外,在大多數實現中,消息更鬆散耦合。您可以在可能聽或不聽的頻道上發送消息。命令(通常並不總是)在執行時更直接。

+0

對不起,我沒有得到你想要解釋我。 – Rookian