我正在 GWT 中创建一个类似 MVP 的应用程序。
- 有多个面板,每个面板始终可见。
- 每个面板都有一个 Presenter,并且有一个 AppController 位于所有 Presenter 之上。
- 有一些应用程序级别的事件发生在一个 Presenter 中,但对其他 Presenter 有影响。
- 为此建议的架构似乎涉及事件总线。但是,我不确定我是否看到了与更简单的东西相比的优势。
- 特别是,简单地允许 AppController(并且只有 AppController)订阅来自任何 Presenter 的事件不是更干净吗?AppController 然后可以告诉每个 Presenter 做什么,给定事件。
- “事件总线”似乎是一个准全局变量。但是,如果您可以使用更精确定义的方法(即 AppController 在每个 Presenter 上调用的方法)来完成同样的事情,那不是更可取吗?
更准确地说,为什么要引入事件总线,而不是简单地让事件“冒泡”到适当的决策级别?对我来说,这似乎是 MVP 概念最直接的扩展,它不需要事件总线的新想法。我不明白引入事件总线是为了解决什么问题。