【发布时间】:2016-09-16 07:44:02
【问题描述】:
我可以使用事件总线来解耦所有的应用程序层吗?我正在尝试使用干净的架构。通常解耦是由边界接口完成的,我已经看到了一些使用 RX 观察者的例子。问题是我可以使用事件总线来解耦层吗?事件总线可以处理这样的工作吗?
【问题讨论】:
标签: android event-bus clean-architecture
我可以使用事件总线来解耦所有的应用程序层吗?我正在尝试使用干净的架构。通常解耦是由边界接口完成的,我已经看到了一些使用 RX 观察者的例子。问题是我可以使用事件总线来解耦层吗?事件总线可以处理这样的工作吗?
【问题讨论】:
标签: android event-bus clean-architecture
Event Bus 非常适合跨领域活动,因此如果不需要,您无需通过中间层来传递事件。
对于干净/洋葱/多层架构,您不需要事件总线,但需要明确层之间的合同,即边界接口。他们可能会也可能不会使用 RX。
您可以在没有任何接口的事件总线上使用完全解耦模块,然后所有组件都将被极度解耦,但是调试、维护和做任何有意义的事情都会变得非常困难:) 所以某种契约是即使使用事件总线也总是一个好主意。
结合反应式编程和事件总线,您可以创建高度解耦的事件驱动 Pico 服务,并由围绕您的事件总线的一些合约限制,以提高事件/命令/数据流的清晰度。
我个人正在使用和工作 RxHub,它正是出于传递横切事件和简单的数据流运算符链接的需要而诞生的。
【讨论】: