依赖注入

164 阅读1分钟

文章

零散的点

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