Dagger 2:在应用程序模块中提供依赖关系而不是注入它们

时间:2016-10-08 16:55:43

标签: android dependency-injection dagger-2

我试图将Dagger 2添加到我的Android应用程序中。 据我所知,Dagger将构造我的对象(我试图注入),只要它提供了'依赖关系(在模块中)或者使用某种形式的注入(构造函数/方法)注入它们。

我想知道是否应该在模块中提供依赖项(比如应用程序模块)与使用构造函数注入时注入的依赖项之间存在区别,以及是否存在何时应该执行哪些规则?

2 个答案:

答案 0 :(得分:2)

两者都是一样的。构造函数注入基本上消除了编写提供者方法的需要。根据经验,我主要将它用于带有非args构造函数的类,以便于注入,就像Util类一样。

答案 1 :(得分:2)

真的没有区别。只要Dagger知道如何构造一个实例,那就重要了。

有两种方法可以做到这一点的原因是你并不总是能够使用构造函数注入,例如,如果类是你正在使用的库的一部分但你没有源代码(所以你不能在其中一个构造函数上添加@Inject)。