Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Dagger2的Android依赖注入_Java_Android_Dependency Injection_Dagger 2 - Fatal编程技术网

Java 使用Dagger2的Android依赖注入

Java 使用Dagger2的Android依赖注入,java,android,dependency-injection,dagger-2,Java,Android,Dependency Injection,Dagger 2,我刚开始在android中使用Dagger2进行依赖注入。我现在使用它的方式确保我没有 新类() 但我觉得我已经过度使用依赖注入了。我注入任何需要实例的东西。是这样吗?或者有一组东西我可以注入,或者我可以注入所有东西过度使用依赖注入是非常容易和常见的,我不赞成“注入任何需要实例的东西”的做法。但是,您需要决定哪些方面属于哪一组 我看到的一个区别是“可注射的”和“新的”,如(上)和 您可能需要权衡依赖项注入的优点,包括: 环境替代外部实现的能力,特别是在针对未编写、繁重或不确定的实现进行测试时

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

新类()


但我觉得我已经过度使用依赖注入了。我注入任何需要实例的东西。是这样吗?或者有一组东西我可以注入,或者我可以注入所有东西

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

我看到的一个区别是“可注射的”和“新的”,如(上)和

您可能需要权衡依赖项注入的优点,包括:

  • 环境替代外部实现的能力,特别是在针对未编写、繁重或不确定的实现进行测试时
  • 隔离依赖项的依赖项,这些依赖项可能会独立地改变和发展
…针对成本,其中包括:

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

价值和模型对象不太可能有多个或高风险的实现,它们通常直接处于可更新的阵营中;相互关联和相互依存的服务往往远未进入可注入的阵营。对于轻量级服务和UTILS,您需要识别上面提供的好处并根据所需的好处画出一条线。

您不应该注入所有的东西,首先要考虑的是,您是否有第三方依赖关系以及使用它们的频率。可以在模块中替换为非范围的提供程序方法。如果您试图赢得一场注射比赛,您可能走上了正确的道路