我希望使用Otto进行片段间通信。如果我可以提供帮助,我想使用最佳实践来做到这一点。 Github上的Otto示例对Bus
对象使用单例,但建议使用依赖注入。我对这两个概念都不熟悉,尽管前者似乎更容易实现。尽管如此,我还是在努力想看看如何在不费力的情况下做后者。
有操作系统依赖注射器dagger,guice和其他一些人,但他们似乎对于像我这样的相对新手来说相当重。我想知道是否真的值得学习使用其中一个似乎在效率/代码常规方面看似微小的收获。更不用说它们会使我的项目膨胀。
使用DI实现Otto是否真的值得,当我只是用它来替换一些接口和监听器时?我只会在一些包含片段的活动中注册Bus
我不会进行单元测试,而且我可以接受两到三个活动(十分之一)与他们的片段紧密耦合。我没有看到任何真的做坏事,就像它建议的那样,特别是如果稍后切换到依赖注入相对容易的话。
最后,我是否需要单独的Bus
实例用于单独的活动片段组,其中通信只发生在所述组中?我不清楚我是否需要这样做才能获得最佳实践/效率或安全性?
答案 0 :(得分:2)
我想你可能对此有不同的看法,但是自己使用奥托和匕首,并考虑到你提供的信息,我认为实施DI的成本/收益(用匕首,guice或其他东西)对你来说值得。这不是匕首 - 我喜欢它并成功使用它,但是有一个学习曲线,如果你没有进行单元测试,我不知道它会给你带来多大价值。
如果您稍后开始进行单元测试,那么添加DI将是一个很好的举措。
关于单独的活动片段组的单独Bus
个实例的问题,如果这些活动 - 片段组未发布和订阅相同类型的事件,则可能没有必要。也就是说,如果活动片段组A只关心Foo事件,而活动片段组B只关心Bar事件,那么我认为单个应用程序范围Bus
可能满足您的需求。