gpt4 book ai didi

java - 使用 Dagger 2 的 Android 依赖注入(inject)

转载 作者:行者123 更新时间:2023-11-30 00:34:45 24 4
gpt4 key购买 nike

我刚开始使用 dagger 2 在 android 中进行依赖注入(inject)。我现在使用它的方式确保我没有

new Class();

但我有一种感觉,我不再使用依赖注入(inject)了。我注入(inject)任何需要实例的东西。这是正确的吗?还是有一些我可以注入(inject)的东西,或者我可以注入(inject)所有东西

最佳答案

过度使用依赖注入(inject)是非常容易和普遍的,我不赞成“注入(inject)任何需要实例的东西”的做法。但是,您需要决定哪些方面属于哪个组。

我看到的一个区别是“注入(inject)剂”与“新产品”,如 this oft-cited article by Miško Hevery 中所示(也在 the Google Testing Blog 上),this article by Giorgio Sironi , 和 this Dagger 2 StackOverflow answer .

你可能想权衡依赖注入(inject)的优势,包括:

  • 环境替代实现的能力,尤其是在针对未编写的、繁重的或不确定的实现进行测试时
  • 与您的依赖项的依赖项隔离,这些依赖项可能会独立变化和发展

...相对于费用,其中包括:

  • 难以判断可以提供哪种实现
  • 额外的 Provider 类和实例,这在嵌入式/移动平台上可能很昂贵
  • 复杂的语法和构建步骤来处理混合构造函数参数和工厂,例如通过 AutoFactory

值和模型对象不太可能有多个或有风险的实现,它们通常完全属于阵营;相互关联和相互依赖的服务通常属于可注入(inject) 阵营。对于轻量级服务和实用程序,您需要确定上面提供的优势并根据您需要的优势划清界线。

关于java - 使用 Dagger 2 的 Android 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43604333/

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