Dagger2是一个依赖注入框架
1.什么是依赖注入?
就是目标类中所依赖的其他的类的初始化过程,不是通过手动编码的方式创建
将其他的类初始化好的实例自动注入到我们的目标类当中。它也是面向对象的一种设计模式,
主要作用就是降低我们程序的耦合。
讲述两个场景来描述一下Dagger2:
1.在一个对象里创建另一个对象的实例。这种行为就会产生耦合现象。导致代码难以维护。
2.Picasso / Glide框架处理图片,
如果我们的项目起初使用picasso图片框架,当运营人员更换一个素材是picasso满足不了的,需要通过Glide图片框架进行解决。这个时候需要Dagger2,
2.四种注入方式。
1.通过接口注入:
首先我们定义一个接口ClassBInterface,在接口当中我们定义一个setB方法,在方法中我们传入ClassBInterface这个参数
创建一个ClassAInterface类实现ClassBInterface这个接口,
在这个ClassAInterface这个类中定义一个ClassBInterface这个成员变量,然后复写SetB这个方法。
最后我们通过这个SetB方法完成这个接口的注入。
2.通过set方法注入
set是我们依赖注入非常重要的方法,因为依赖注入的依赖都是从外部传递过来的,特别是在java平台上,我们通过反射和动态编译来提供依赖注入的,这个时候我们set方法就会经常用到,
在ClassAset类中定义一个ClassB的成员变量,通过setClassB方法完成注入,对他的成员变量赋值,
这样就更加剥离了我们部分代码的耦合性,
3.通过构造方法来注入(最常见的)
在ClassAConstuctor中定义ClassB成员变量,通过构造方法,对成员变量进行