Dagger 2 完全解析系列:
Dagger 2 完全解析(一),Dagger 2 的基本使用与原理
Dagger 2 完全解析(二),进阶使用 Lazy、Qualifier、Scope 等
Dagger 2 完全解析(三),Component 的组织关系与 SubComponent
Dagger 2 完全解析(四),Android 中使用 Dagger 2
Dagger 2 完全解析(五),Kotlin 中使用 Dagger 2
Dagger 2 完全解析(六),dagger.android 扩展库的使用
本系列文章是基于 Google Dagger 2.11-rc2 版本
依赖注入
什么是依赖
如果在 Class A 中,有 Class B 的实例,则称 Class A 对 Class B 有一个依赖。例如 Man 中有用到一个 Car 对象,即 Man 对 Car 有一个依赖。
|
|
上面这种写法是最常见的写法,但是在下面几个场景中存在一些问题:
如果要修改 Car 的构造函数,例如需要使用
car = new Car(name)
的方式构造时,还要修改 Man 的代码;如果想测试不同的 Car 对 Man 的影响会很困难,例如单元测试中使用 mock 的 car 测试 Man。