1、什么是Dagger2?
顾名思义,Dagger2是Dagger的升级版本,是一个依赖注入的框架;Dagger2的前身版本是由牛哄哄的Sqare公司开发,后来Google对Dagger进行了升级,对于感觉自己的Activity、Fragment耦合度太高,不易维护的Android开发者,Dagger2值得一试。
2、什么是依赖注入?
大学里学科班出身的程序员,肯定都听说过这个;没听说过的也没关系,我解释一下:依赖注入是一种编程思想,或者说是一种编程模式,而这种思想主要解决的问题就是代码的耦合问题,那什么又是耦合呢?简单点说就是,类与类之间产生了关系,这种关系就是耦合(又称耦合度),不了解衡量耦合度标准的同学,建议点这里 复习一下了。
那么我们如何通过依赖注入的手段实现低耦合的代码呢?
举个例子:
public class ClassA{
ClassB b;
public ClassA(){
b = new ClassB();
}
}
上面这个简单的例子,就是一个典型的耦合的例子,当ClassB的构造方法发生变化时,我们不得不回过头来修改ClassA。在学习大话设计模式时,我们知道有六大设计原则 ,我们这么设计一开始就违背了单一变量原则,当ClassB发生变化时,我们在来修改ClassA,这又违背开放封闭原则。显然这样的设计是不合理的。
为了解决上面的问题,我们引入依赖注入的设计模式。那么依赖注入的设计模式有那些实现方式呢?我们一一来介绍一下:
(1)通过接口注入的方式
interface ClassBInterface {
void setB(ClassB b);
}
public class ClassA implements ClassBInterface {
ClassB classB;
@override void setB(ClassB b) {
classB = b;
}
}
(2)通过方法注入的方式
public class ClassA {
ClassB classB;
public void setClassB(ClassB b) {
classB = b;
}
}
(3)通过Java注入方式
public class ClassA{
@Inject ClassB classB;
public ClassA(){}
}
在这里我们就是依赖Dagger2框架,通过注解的方式,将ClassB,注入到ClassA中。
那么我们如何在Android开发中使用Dagger2框架呢?这部分内容,我们将在《2、Dagger2的基本使用》中讨论。
作为一个程序员,我们的目标就是写出高内聚低耦合的优秀代码。所以在Android编程过程中,一个依赖注入框架Dagger2你值得拥有。
tips:第一次写简书,写的不好大家见谅。
网友评论