IOC控制反转



IOC控制反转

public class Personervice{
    private PersonDao personDao=ne wPersonDao();
    public void save(Person person){

personDao.save(person);

    }
}

PersonDao是在应用内部创建及维护的,所谓控制反转就是应用本身不负责依赖对象的创建及维护,

依赖对象的创建及维护由外部容器负责,

这样控制权就由应用转移到了外部容器,

控制权的转移就是所谓的反转。

IOC(控制反转,依赖注入)

控制反转的核心:依赖对象的创建,不是自己负责,而是通过外部容器负责,

这样可以做到解耦使得使用者和创建者分离(一个类要么使用对象,

要么创建对象,不应兼而有之),这个外部容器可以是创建型模式(如工厂),

spring本身就是一个强大工厂。

紧耦合:代码之间依赖性很强,更改一个另一个也改变,

松耦合:代码之间的依赖性不强,(好的)