【发布时间】:2013-10-24 09:32:38
【问题描述】:
我正在尝试使用 Backbone.Marionette,我在 github 上阅读了关于 wreqr 的 docs。 那么,事件聚合器、命令和请求/响应之间有什么区别。什么时候使用一个或另一个?
【问题讨论】:
标签: events backbone.js marionette
我正在尝试使用 Backbone.Marionette,我在 github 上阅读了关于 wreqr 的 docs。 那么,事件聚合器、命令和请求/响应之间有什么区别。什么时候使用一个或另一个?
【问题讨论】:
标签: events backbone.js marionette
它们基本上都使用消息传递,它们的区别主要是语义:
【讨论】:
我想添加到 David Sulc 的 answer。
请求/响应与事件聚合器和命令非常不同。它用于您的代码的一部分从代码的另一部分请求某些内容的情况。总是期望得到回应。现在让我们看看事件聚合器和命令有何不同。
Marionette 的事件聚合器允许您实现发布-订阅行为。使用 'on' 方法,您可以订阅事件并将事件绑定到任何对象。 您无法使用命令实现此绑定行为。您还可以让多个对象监听任何特定事件。也可能存在没有对象绑定或监听任何事件的情况。
命令专门用于在代码的其他部分执行某些操作。一个特定命令只能有 1 个处理程序,这与可以有多个侦听器的事件不同。
总而言之,每个用例将是:
1) 请求/响应:当您需要来自另一部分代码的响应时。
2) 事件聚合器:当您想将对象绑定到事件时
3) 命令:您只需要代码的其他部分来执行任务。
【讨论】: