文章
零散的点
- 什么是依赖
- ClassA 中用到了 ClassB实例,则称为ClassA依赖于ClassB实例,或ClassA依赖于ClassB.
- PC类依赖于CPU类.
- PC类持有的CPU实例,是PC类自己创建的,不是外部提供的,也不是外部设置的,则不属于依赖注入
public class PC{
private CPU cpu;
public PC(){
cpu = new CPU("CPU1");
}
}
- 什么是依赖注入
- ClassA 中持有的 ClassB实例,不是由ClassA自己创建的,是外部传入构造参数,或setter方法赋值的,凡是把依赖的决定权交给外部,称为依赖注入
public class PC{
private CPU cpu;
public PC(CPU mCpu){
this.cpu = mCpu;
}
}
public class PC{
private CPU cpu;
public void setCpu(CPU mCpu){
this.cpu = mCpu;
}
}
- dagger是依赖注入
- ButterKnife不属于依赖注入.
- 因为使用ButterKnife的注解,只是避免了手动写findViewById代码,注解关联的View实例仍然是由当前Activity通过注解参数设置的,不是由外部决定.
- ButterKnife 只是1个 View 绑定库,不属于依赖注入.