【问题标题】:Difference between Event Aggregator, Commands and Request/Response事件聚合器、命令和请求/响应之间的区别
【发布时间】:2013-10-24 09:32:38
【问题描述】:

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

【问题讨论】:

    标签: events backbone.js marionette


    【解决方案1】:

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

    • 事件聚合器:当有事情发生时发送消息。其他地方的代码可能正在监听该消息,但可能不会
    • request/response:让代码发送请求,它会期待响应(例如,向我发送刷新的数据)
    • commands:在一个地方编写代码 commands 在其他地方编写代码以执行操作。通常没有返回值。

    【讨论】:

      【解决方案2】:

      我想添加到 David Sulc 的 answer

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

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

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-14
        • 1970-01-01
        • 2017-12-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多