我正在尝试使用Backbone.Marionette,我在github上阅读了关于wreqr的docs。 那么,事件聚合器,命令和请求/响应之间的区别是什么。何时使用一个或另一个?
答案 0 :(得分:9)
他们基本上都使用消息传递,他们的区别主要是语义:
答案 1 :(得分:8)
我想补充一下David Sulc的answer。
请求/响应与事件聚合器和命令非常不同。它用于代码的一部分从代码的另一部分请求某些内容的情况。始终会有回应。现在让我们看看事件聚合器和命令是如何不同的。
Marionette的Event Aggregator允许您实现发布 - 订阅行为。使用' on'您可以订阅事件并将事件绑定到任何对象的方法。 您无法使用命令实现此绑定行为。 此外,您可以让多个对象侦听任何特定事件。可能还存在没有对象绑定或收听任何事件的情况。
命令专门用于在代码的其他部分执行某些操作。对于特定命令,只能有1个处理程序,与可以有多个侦听器的事件不同。
总而言之,每个用例都是:
1)请求/响应:当您需要代码的其他部分的某些响应时。
2)事件聚合器:当您想要将对象绑定到事件
时3)命令:您只需要代码的其他部分来执行任务。