0

我希望使用 Otto 进行片段间通信。如果我能提供帮助,我想使用最佳实践来做到这一点。Github 上的 Otto 示例对Bus对象使用单例,但建议使用依赖注入。我对这两个概念都很陌生,尽管前者似乎更容易实现。尽管四处阅读,我仍在努力寻找如何在不费力的情况下完成后者。

有操作系统依赖注入器 dagger、guice 和其他一些,但对于像我这样的相对新手来说,它们似乎相当沉重。我想知道是否真的值得学习使用其中之一来获得看似微小的效率/代码常规收益。更不用说他们会让我的项目膨胀。

使用 DI 来实现 Otto 真的值得吗,而我只打算在这里和那里用它来替换一些接口和侦听器?我只会Bus在一些包含片段的活动中注册

我不会进行单元测试,我可以忍受两个或三个活动(十个)与它们的片段紧密耦合。我看不出这样做有什么不好的,因为这是不明智的,特别是如果稍后切换到依赖注入相对容易的话。

最后,我是否需要Bus单独的活动片段组的单独实例,其中通信只会在所述组内发生?从阅读中我不清楚我是否需​​要这样做以获得最佳实践/效率或安全性?

4

1 回答 1

2

我想你可能对此有不同的看法,但是我自己使用了 Otto 和 dagger,并考虑到你提供的信息,我认为实施 DI(使用 dagger、guice 或其他东西)的成本/收益不值得它给你。这不是敲门砖——我喜欢它并且正在成功地使用它,但是有一个学习曲线,如果你不做单元测试,我不知道它会给你带来多大的价值。

如果您稍后开始进行单元测试,那么添加 DI 将是一个不错的举措。

关于Bus单独活动片段组的单独实例的问题,如果这些活动片段组没有发布和订阅相同类型的事件,则可能没有必要。也就是说,如果活动片段组 A 只关心 Foo 事件,而活动片段组 B 只关心 Bar 事件,那么我认为单个应用程序范围Bus可能满足您的需求。

于 2013-07-30T22:36:58.593 回答