use*_*376 16 java android dependency-injection dagger-2
我真的很难理解Dagger 2 Dependency注射系统.
我理解使用@Inject注释告诉Dagger我们需要在这里提供某种类型的实例.
但是,我不明白其他成分如各种角色:@Module,@Component,@Provides以及他们如何一起工作,以提供相应的实例到适当的依赖.
有人可以简单而简洁地解释一下吗?
Art*_*gin 23
@Module:模块是其方法提供依赖关系的类,因此我们定义一个类并使用@Module注释它,因此,Dagger将知道在何处找到依赖关系以便在构造类实例时满足它们.模块的一个重要特性是它们被设计为分区和组合在一起(例如,我们将在我们的应用程序中看到我们可以有多个组合模块).
@Component:组件基本上都是注入器,让我们说@Inject和@Module之间的桥梁 ,它的主要职责是将它们放在一起.它们只是为您提供了您定义的所有类型的实例,例如,我们必须使用@Component注释一个接口 并列出将组成该组件的所有@Module,如果缺少其中任何一个,我们会在编译时遇到错误.所有组件都知道它通过其模块提供的依赖关系的范围.
@Provide:在模块内部,我们定义了包含这个注释的方法,它告诉Dagger我们想要构建和提供那些提到的依赖项.
我建议你读一下这个:
我想这有助于理解.
| 归档时间: |
|
| 查看次数: |
3714 次 |
| 最近记录: |