为什么我们需要在java或Android中对单例类进行依赖注入?

时间:2016-04-25 14:39:47

标签: java android singleton dagger otto

例如,如果我使用Dagger注入(Otto)Bus对象,那么我将不得不编写更多代码行,以便在接口中指定我注入的位数。

另一方面,如果我只使用单例类来返回Bus实例,那么在依赖注入的情况下,我不需要编写尽可能多的代码行。

所以我的问题是“为什么或如何使用依赖注入来注入Singleton类实例更好?”

1 个答案:

答案 0 :(得分:3)

首先,DI将减少您必须调用以使用所需依赖项设置实例的样板数量。代码越少意味着可读性越高。要付出的代价是所涉及的配置,但是,对于大型项目,它是值得的。

其次,当您在应用上运行自动化测试时,您可以从DI中受益。您将有能力用模拟替换标准的单例实现,您可以控制并使用它来模拟覆盖所有情况所需的不同场景。

话虽如此,我也认为DI仅适用于大型Android项目或中型到大型EE项目。否则它会增加一些不必要的复杂性恕我直言。