【发布时间】:2015-10-06 09:32:39
【问题描述】:
在我的 Android 应用中,我使用 Otto 作为事件总线,使用 Dagger 进行依赖注入。
在 Otto 的用户指南和许多博客文章中,建议使用注入来获取总线单例。我已经这样做了一段时间,但最近我越来越怀疑注入总线是否比使用简单的静态单例有任何优势。
通过注入,我必须注入我希望能够在总线上发布 UI 事件的每个自定义 View 或 ViewHolder。尤其是使用匕首,在我需要总线的每个类中注入似乎有点笨拙。当然,我可以通过构造函数或 setter 方法传递总线,但如果您考虑使用具有许多不同视图类型的适配器,这也可能有点笨拙。
而且我没有看到注入总线的任何优势。在 Otto 的情况下,注入了一个具体的实现(Bus 的一个实例),并且永远不会改变。考虑到订阅的工作方式,包装 Otto 以进行解耦没有任何意义。
那么,有没有人看到注射 Otto 的任何我看不到的优势?
【问题讨论】:
-
谢谢,信息量很大。
标签: android dependency-injection dagger event-bus otto