3

在您的应用程序中使用全局事件总线是一个糟糕的设计吗?
如何确保您最终不会在整个应用程序中出现一组紧密耦合的组件相互通信?
你能想到 Java 世界中的机制/工具/库来对其执行一些纪律吗?

4

1 回答 1

4

全局事件总线(即应用程序中的每个组件(类或对象)都可以访问的事件总线)的问题在于,您无法控制谁将使用该事件总线。

如果您是唯一的开发人员或正在与紧密的团队合作,则可以就组件可以使用事件总线的条件达成一致。否则所有条都关闭。

话虽如此,应该有可能与事件总线进行通信,否则没有意义。通过为负责事件实际触发的事件总线引入代理,您可以控制谁依赖于代理。

通过使用依赖注入(通过guice或 hand-rolled 之类的框架),您可以自动提供代理状态,从而显式地显示对事件总线的依赖。

于 2012-07-24T09:17:13.267 回答