有人能为匕首2提供一个很好的解释吗?
2022-09-01 23:26:57
我真的很难理解Dagger 2依赖注入系统。
我理解使用注释来告诉Dagger我们需要在这里提供某种类型的实例。@Inject
但是,我不了解其他组件的各种角色,例如:,,,以及它们如何协同工作以向适当的依赖项提供适当的实例。@Module
@Component
@Provides
有人可以简单明了地解释一下吗?
我真的很难理解Dagger 2依赖注入系统。
我理解使用注释来告诉Dagger我们需要在这里提供某种类型的实例。@Inject
但是,我不了解其他组件的各种角色,例如:,,,以及它们如何协同工作以向适当的依赖项提供适当的实例。@Module
@Component
@Provides
有人可以简单明了地解释一下吗?
@Module:模块是其方法提供依赖项的类,因此我们定义一个类并用@Module对其进行注释,因此,Dagger将知道在哪里可以找到依赖项,以便在构造类实例时满足它们。模块的一个重要功能是它们被设计为可以分区和组合在一起(例如,我们将看到在我们的应用程序中,我们可以有多个组合的模块)。
@Component:组件基本上是喷油器,假设@Inject和@Module之间的桥梁,其主要职责是将两者放在一起。它们只为您提供了您定义的所有类型的实例,例如,我们必须使用@Component注释接口并列出将组成该组件的所有@Modules,如果缺少任何一个,我们将在编译时收到错误。所有组件都知道它通过其模块提供的依赖项的范围。
@Provide:在模块内部,我们定义了包含此注释的方法,该注释告诉Dagger我们想要如何构造和提供提到的依赖项。
我建议你读这个:
我想这将有助于理解。