使用事件总线解耦 Android 应用程序

Decoupeling Android Application with Event Bus

我可以使用事件总线来解耦所有的应用层吗?我正在尝试使用干净的架构。通常解耦是由边界接口完成的,我已经看到一些使用 RX 观察器的例子。问题是我可以使用事件总线来解耦层吗?事件总线可以处理这样的工作吗?

事件总线非常适合横切活动,因此如果不需要,您无需通过中间层来传递事件。

对于 clean/onion/multi-layer 体系结构,您不需要事件总线,但需要明确各层之间的契约,即边界接口。他们可能使用也可能不使用 RX。

你可以在没有任何接口的事件总线上使用完全解耦模块,然后所有组件都将被极度解耦,但是调试、维护和做任何有意义的事情都非常困难:)所以某种即使在使用事件总线时,契约总是一个好主意。

结合响应式编程和事件总线,您可以创建高度解耦的事件驱动的 pico 服务,这些服务受事件总线周围某些契约的约束,以提高 event/command/data 流的清晰度。

我个人正在使用和开发 RxHub,它正是出于传递横切事件和简单的数据流运算符链接的需要而诞生的。