2013-10-24 112 views

回答

9

他們bascially都使用消息,它們的區別主要是語義:

  • 事件聚合:有事時發送消息。代碼別的地方可能被監聽該消息,但也許不是
  • 請求/響應:有代碼發送請求,它會期望的響應(如送我刷新數據)
  • 命令:代碼在一個地方命令代碼執行一個動作。通常沒有返回值。
7

我想添加到David Sulc的answer

請求/響應與事件聚合器和命令非常不同。它用於代碼的一部分代碼從代碼的另一部分請求某些內容的情況。答覆總是可以預料的。現在讓我們看看事件聚合器和命令是如何不同的。

Marionette的Event Aggregator允許您實現發佈 - 訂閱行爲。使用'on'方法可以訂閱一個事件並將一個事件綁定到任何對象。 您不能使用命令實現此綁定行爲。你也可以有多個對象監聽任何特定的事件。也可能有一種情況,沒有任何對象被綁定到或正在收聽任何事件。

命令專門用於在代碼的其他部分執行某些操作。對於特定命令,只能有一個處理程序,與可以有多個偵聽器的事件不同。

所以總結一下,在具體使用情況是:

1)請求/響應:當你需要從代碼的另一部分響應一些。

2)事件聚合:當你想對象綁定到事件

3)命令:你只是想你的代碼的其他部分來執行任務。

相關問題