构造函数注入 vs 字段注入 vs 方法注入 Dagger 2

4

我已经学习了一周的Dagger 2,在我阅读的教程中,大多数人都写道,相比于字段和方法注入,最好使用构造函数注入。

我感到困惑,并希望澄清一下,什么时候应该使用构造函数注入,什么时候应该使用字段和方法注入。谢谢。

1个回答

3

我不能说这是绝对的答案,但我想分享我的观点。我更喜欢构造函数注入,因为你被迫通过满足其依赖关系来创建对象。换句话说,除非您故意将其设置为null,否则您永远不会陷入调用对象方法而导致某些依赖项未设置而出现空指针异常的情况。我倾向于在任何地方都使用构造函数依赖注入。

话虽如此,有时候这不可行。例如,在Android中,Activities是由系统创建的,因此我们通常没有自己的构造函数来调用并传递依赖项。这时我经常使用字段依赖注入。我这样做是因为有很多工具可以帮助您完成此操作。

第三个选项是通过setters进行。就我个人而言,我从未使用过它。不确定在哪种情况下需要它。也许当依赖关系必须在运行时更改时?不确定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接