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

标签 android event-bus clean-architecture

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

最佳答案

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

对于整洁/洋葱/多层架构,您不需要事件总线,但需要清晰的层间契约,即边界接口(interface)。他们可能使用也可能不使用 RX。

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

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

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

关于android - 使用事件总线解耦 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39526239/

相关文章:

android - 在 webview 中重新加载 url 后应用程序崩溃

android - SQLite在Android中创建具有多个主键的表

Android NavigationView onDestroy 未调用

其他框架中的 GWT Event Bus 概念

event-handling - 在单线程应用程序中,EventBus/PubSub 与(响应式(Reactive)扩展)RX 的代码清晰度比较

android - Clean Architecture(域)中的业务逻辑是什么

domain-driven-design - 在整洁的架构中用例交互器应该有多大或多小?

android - 从应用程序缓存中读取 PDF

android - 如何管理运行时权限 android marshmallow espresso 测试

flutter - 使用Flutter TDD返回基于json文件的有效BusinessCard模型