我读到了 SubComponents
以及 Component Dependencies
从这个文档https://google.github.io/dagger/api/latest/dagger/component.html 阅读这篇文章,也就是匕首2子组件和组件依赖关系
有谁能举例说明这句话的意思吗。
子组件可以使用其祖先组件和子组件定义的任何绑定。或者,组件只能通过声明组件依赖关系来使用来自另一个组件接口的绑定。当一个类型用作组件依赖项时,依赖项上的每个provision方法都被绑定为提供程序。请注意,只有作为提供方法公开的绑定可以通过组件依赖关系使用。
1条答案
按热度按时间dgsult0t1#
把它看作一个子组件,比如java
SubComponent extends ParentComponent
一切都在哪里protected
. 它将访问与父对象相同的成员,并且可以使用所有父对象。另一方面,组件依赖关系类似于委托对象,您只能访问类公开的公共方法。
假设我们有两个dagger可以创建和提供的类。不管这是什么。不管您是使用构造函数注入还是从模块中创建对象……我们只是假设我们有这两个类,它们可以由某些人提供
BaseComponent
,我将在下面展示。他们来自哪里并不重要。下一部分是有趣的部分。我们将其中一个类声明为组件接口上方法的返回类型。这就是dagger所称的供应方法。它说这个组件可以提供这个类。
子组件和依赖组件之间的区别在于,与前面的java示例一样,
Subcomponent
可以同时使用ComponentPrivateObject
以及ExposedObject
因为它只是扩展了父图。另一方面,
DependentComponent
只能访问ExposedObject
. 它不扩展BaseComponent
,但它只是束缚BaseComponent
作为某些对象的提供者。就像上面的java示例一样,它就像使用它的公共api,如果您尝试使用ComponentPrivateObject
匕首会告诉你不能提供。。。一个扩展父级,另一个使用其公共api。