5

我正在尝试使用 Backbone.Marionette,并且我在 github 上阅读了有关 wreqr的文档。那么,事件聚合器、命令和请求/响应之间有什么区别。什么时候使用一个或另一个?

4

2 回答 2

9

它们基本上都使用消息传递,它们的区别主要是语义:

  • 事件聚合器:当有事情发生时发送消息。其他地方的代码可能正在监听该消息,但可能不是
  • 请求/响应:让代码发送请求,它会期待响应(例如向我发送刷新的数据)
  • 命令:在一个地方的代码命令在其他地方的代码来执行一个动作。通常没有返回值。
于 2013-10-24T10:03:02.680 回答
8

我想补充一下 David Sulc 的回答

请求/响应与事件聚合器和命令非常不同。它用于您的代码的一部分从代码的另一部分请求某些内容的情况。总是期望得到回应。现在让我们看看事件聚合器和命令有何不同。

Marionette 的事件聚合器允许您实现发布-订阅行为。使用 'on' 方法,您可以订阅事件并将事件绑定到任何对象。您无法使用命令实现此绑定行为。您也可以让多个对象监听任何特定事件。也可能存在没有对象绑定或监听任何事件的情况。

命令专门用于在代码的其他部分执行某些操作。一个特定命令只能有 1 个处理程序,这与可以有多个侦听器的事件不同。

总而言之,每个用例将是:

1)请求/响应:当您需要来自代码另一部分的响应时。

2)事件聚合器:当你想将对象绑定到事件时

3)命令:您只需要代码的其他部分来执行任务。

于 2014-08-07T08:46:03.220 回答