构造函数 vs 字段 vs 方法注入匕首 2.



我已经学习了Dagger 2一个星期,在我阅读的教程中,他们中的大多数人都写道,使用构造函数注入比使用字段和方法注入更可取。

我很困惑,想弄清楚什么时候应该使用构造函数注入,什么时候应该使用字段和方法注入。 提前谢谢。

我不能说这是确定的答案,但我想分享我的观点。我更喜欢构造函数注入,因为您被迫通过满足其依赖项来创建对象。换句话说,你永远不会遇到调用对象方法的情况,并且由于未设置某些依赖项,你会得到一个空指针异常(除非你故意将其设置为null在这种情况下你要求它)。我倾向于总是在任何地方使用构造函数依赖注入。

也就是说,有时这根本不可能。例如,在Android中,活动是由系统创建的,因此我们通常没有自己的构造函数来调用和传递依赖项。在这里,我经常使用字段依赖注入。我这样做是因为有很多工具可以帮助你解决这个问题。

第三种选择是通过setters.就个人而言,我从未使用过它。不完全确定在哪里需要这样做。也许当依赖项必须在运行时更改时?不确定。

最新更新