Spring的作用之一是控制反转(依赖注入),要说清反转控制需要依次说清三个问题:
1.控制反转的目的是什么?
控制反转的目的是——解耦
2.控制反转是如何实现的解耦?
没有控制反转之前我们实现解耦的一个重要手段是使用工厂模式。
先来看一下工厂模式,我们假设用户向工厂购买不同的产品,工厂负责生产给用户,用工厂模式实现的话,代码如下:
产品:
// 产品接口
public interface IProduct {
}
// 产品A
public class ProductA implements IProduct {
ProductA() {
System.out.println("产品A");
}
}
// 产品B
public class ProductB implements IProduct {
ProductB(){
System.out.println("产品B");
}
}
工厂:
//工厂接口
public interface IFactory {
public IProduct production();
}
// 工厂A
public class FactoryA implements IFactory {
// 多态:工厂A只能生产产品A
private IProduct product = new ProductA();
@Override
public IProduct production() {
return product;
}
}
//工厂B
public class FactoryB implements IF