android - Dagger2 依赖组件与子组件

标签 android dependency-injection dagger-2

具有特定作用范围的子组件和依赖组件之间有什么区别?每一种都有什么优点或缺点?

我的故事:最近我决定停止使用 dagger-android 并完全切换到传统的 dagger 在我的整个项目中进行依赖注入(inject)项目。您对于为每个 fragment/Activity 创建组件/子组件有什么建议吗?

最佳答案

如果您创建子组件,则所有组件的依赖项也将在您的子组件中可用。

您只能通过父组件实例访问子组件。 子组件的范围被认为小于其父组件的范围。因此,您的父组件和子组件不能使用相同的范围注释。

如果您创建依赖组件,则必须在父组件中显式公开依赖关系。只有这样,子组件才能使用它。 您可以直接使用依赖组件,但您必须提供父组件的实例才能构建依赖组件。

从这些视频中获取更多详细信息:https://www.youtube.com/playlist?list=PLrnPJCHvNZuA2ioi4soDZKz8euUQnJW65

关于android - Dagger2 依赖组件与子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58888094/

相关文章:

java - try catch 意外 token

java - 如何使约束布局的宽度为负数?

java - setText 不适用

symfony - 不存在的服务 "request_stack"

android - Dagger 2 错误 : dependency "cannot be provided without an @Inject constructor" while it actually annotated with @Inject

android - 如何在 Android 8/9 上为 OkHttp 3.12.x 启用 TLSv1.3?

c# - 如何在 .NET Core ConsoleApp 中实例化 ServiceCollection 并使用 IHttpClientFactory?

java - e4:依赖注入(inject)和处理小部件

java - Dagger 2 : Using factory methods in place of public constructors

android - 在 attachBaseContext 中使用 Dagger 注入(inject)对象