【发布时间】:2013-07-18 21:20:15
【问题描述】:
我目前正在将一个大型主干应用程序迁移到 Marionette,我很好奇关于如何更好地设计模块之间的活动的意见。
我有一个包含多个模块的应用程序,其中一个模块中的操作可能会导致其他模块中发生活动。
由于这些都与应用程序耦合,我可以简单地使用 Wreqr 接口,其中:
模块 1:
someActivity: ->
App.vent.trigger("skyFalling")
模块 2:
initialize: ->
App.vent.on("skyFalling", @closeOrSomething)
模块 3:
initialize: ->
App.vent.on("skyFalling", @blinkRapidly)
或者最好在模块 1 中触发一个事件,应用程序(或绑定到应用程序的控制器)监听然后直接在模块上调用 'closeOrSomething' 和 'blinkRapidly' 函数(因为应用程序知道它正在加载的所有模块)。
应用:
skyFallingEventHandler: ->
Module2.closeOrSomething()
Module3.blinkRapidly()
【问题讨论】:
-
这个问题可能太自以为是了。这两种方法都行得通,你很可能会为任何一种方法提出强有力的论据。这个问题可能更适合codereview.stackexchange.com
标签: design-patterns backbone.js marionette mediator