Android 使用Dagger 2,是否可以从不同的子组件或不同的组件注入同一类?

Android 使用Dagger 2,是否可以从不同的子组件或不同的组件注入同一类?,android,dagger-2,Android,Dagger 2,这似乎是不可能的,但我找不到明确的写法。有明确的原因吗 谢谢在给定类中只能使用一个组件。但是,您可以在其上安装多个子组件s依赖项。这是不可能的。组件可以一次注入所有内容,否则编译将失败,并出现“无法提供”错误,列出缺少的内容 毕竟,您不能部分调用构造函数(如果使用构造函数注入),也不能部分注入字段,这对于何时、如何或使用哪个作用域注入哪些对象是相当不确定的。如果两个组件都可以提供依赖关系,那么哪个组件应该提供依赖关系?是否创建并注入对象两次?如果另一个对象依赖于另一个组件中的该对象,该怎么办?它

这似乎是不可能的,但我找不到明确的写法。有明确的原因吗


谢谢

在给定类中只能使用一个
组件
。但是,您可以在其上安装多个子组件s依赖项。

这是不可能的。组件可以一次注入所有内容,否则编译将失败,并出现“无法提供”错误,列出缺少的内容


毕竟,您不能部分调用构造函数(如果使用构造函数注入),也不能部分注入字段,这对于何时、如何或使用哪个作用域注入哪些对象是相当不确定的。如果两个组件都可以提供依赖关系,那么哪个组件应该提供依赖关系?是否创建并注入对象两次?如果另一个对象依赖于另一个组件中的该对象,该怎么办?它会造成比任何好处都多的混乱,并为许多错误和意外行为提供根源。

原因是什么?您可以创建依赖于几个子组件的单独组件。我有一个依赖于B项目的a项目。项目为B项目的服务构造参数(这些服务可由不同的活动使用)。我把这些参数放在a项目的一个模块中,把服务结构放在B项目的一个模块中。由于这两个模块是相关的,我想知道是否可以使用子组件来添加它们之间的关系。这是可能的,但如果我必须复制这个结构,我是否能够在同一个活动中使用两个子组件(在项目B中)?子组件似乎更适合“功能”透视图(由使用的不同服务的实现组成的模块)而不是“类型”透视图(由不同类型的服务组成的模块)就像我用于这些模块的那个。