依赖注入
在开始之前,我们先要搞懂什么是依赖注入。
第一个版本。
/**
* Created by REXZOU on 2015/11/21.
*/
public class Motor {
public void addGas() {
}
}
/**
* Created by REXZOU on 2015/11/21.
*/
public class Car {
private final Motor mMotor;
public Car() {
mMotor = new Motor();
}
}
我们用下图表示两者关系
我们要制造一台汽车,每台汽车里面包含了一个发动机。但我们发现汽车和引擎的结合太紧密了,比如想汽车从汽油机改为柴油机,那就重新造一台汽车,太费事了。于是,我们把汽车类稍为改一下。
/**
* Created by REXZOU on 2015/11/21.
*/
public class Car {
private final Motor mMotor;
public Car(Motor motor) {
mMotor = motor;
}
}
现在不一样,我们的发动机不是和汽车一起制造的,而变成组装了。是在外面造好之后,再安装进来,他们逻辑关系图就成了以下这样:
这样,当我们改变发动机的参数或是类型时,我们都不需要去修改汽车Car这个类。
这个问题解决了,新的问题又来了,谁来负责创建Motor。
这个时候,需要Dragger出场了。