Java 使用Dagger2的Android依赖注入
我刚开始在android中使用Dagger2进行依赖注入。我现在使用它的方式确保我没有 新类()Java 使用Dagger2的Android依赖注入,java,android,dependency-injection,dagger-2,Java,Android,Dependency Injection,Dagger 2,我刚开始在android中使用Dagger2进行依赖注入。我现在使用它的方式确保我没有 新类() 但我觉得我已经过度使用依赖注入了。我注入任何需要实例的东西。是这样吗?或者有一组东西我可以注入,或者我可以注入所有东西过度使用依赖注入是非常容易和常见的,我不赞成“注入任何需要实例的东西”的做法。但是,您需要决定哪些方面属于哪一组 我看到的一个区别是“可注射的”和“新的”,如(上)和 您可能需要权衡依赖项注入的优点,包括: 环境替代外部实现的能力,特别是在针对未编写、繁重或不确定的实现进行测试时
但我觉得我已经过度使用依赖注入了。我注入任何需要实例的东西。是这样吗?或者有一组东西我可以注入,或者我可以注入所有东西过度使用依赖注入是非常容易和常见的,我不赞成“注入任何需要实例的东西”的做法。但是,您需要决定哪些方面属于哪一组 我看到的一个区别是“可注射的”和“新的”,如(上)和 您可能需要权衡依赖项注入的优点,包括:
- 环境替代外部实现的能力,特别是在针对未编写、繁重或不确定的实现进行测试时
- 隔离依赖项的依赖项,这些依赖项可能会独立地改变和发展
- 很难判断可以提供哪种实现
- 附加的提供者类和实例,在嵌入式/移动平台上可能很昂贵
- 处理混合构造函数参数和工厂的复杂语法和构建步骤,例如通过
价值和模型对象不太可能有多个或高风险的实现,它们通常直接处于可更新的阵营中;相互关联和相互依存的服务往往远未进入可注入的阵营。对于轻量级服务和UTILS,您需要识别上面提供的好处并根据所需的好处画出一条线。您不应该注入所有的东西,首先要考虑的是,您是否有第三方依赖关系以及使用它们的频率。可以在模块中替换为非范围的提供程序方法。如果您试图赢得一场注射比赛,您可能走上了正确的道路