gpt4 book ai didi

android - Dagger 2 - 注入(inject)构造函数或提供方法哪个更好?

转载 作者:行者123 更新时间:2023-11-29 18:45:40 25 4
gpt4 key购买 nike

我一直在用 Android 学习 Dagger 2。我阅读的大多数帖子都写道,使用构造函数注入(inject)优于字段和方法注入(inject)。

一头雾水,想说清楚,什么时候用Constructor注入(inject),什么时候用Field和Method注入(inject)?

最佳答案

通过构造函数注入(inject)更具可读性,您可以轻松区分与其余部分的依赖注入(inject)相关联的类的一部分。其次,所有的值都是从类存在的一开始就初始化的,所以你可以在初始化 block 中使用它们。

测试更清晰,您确切地知道应该为被测类提供哪些依赖项,否则您的代码将无法编译。使用字段注入(inject),您需要手动设置所有内容。

但是所有这些并不意味着没有字段或方法注入(inject)的用例。字段注入(inject)在您无法控制像 Activity 这样的实例化的 android 类中特别有用。

我也倾向于在父类(super class)中使用字段注入(inject),我为子类使用构造函数注入(inject),并且我不想用公共(public)对象污染构造函数。例如。我有 BaseViewModel,在其中我在字段上注入(inject)了 ExceptionHandler,这样我就不需要将该 ExceptionHandler 放在每个子类构造函数中,然后向上传递到基类。

关于android - Dagger 2 - 注入(inject)构造函数或提供方法哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52045714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com