IOC控制反转
IOC控制反转
public class Personervice{
private PersonDao personDao=ne wPersonDao();
public void save(Person person){
personDao.save(person);
}
}
PersonDao是在应用内部创建及维护的,所谓控制反转就是应用本身不负责依赖对象的创建及维护,
依赖对象的创建及维护由外部容器负责,
这样控制权就由应用转移到了外部容器,
控制权的转移就是所谓的反转。
IOC(控制反转,依赖注入)
控制反转的核心:依赖对象的创建,不是自己负责,而是通过外部容器负责,
这样可以做到解耦使得使用者和创建者分离(一个类要么使用对象,
要么创建对象,不应兼而有之),这个外部容器可以是创建型模式(如工厂),
spring本身就是一个强大工厂。
紧耦合:代码之间依赖性很强,更改一个另一个也改变,
松耦合:代码之间的依赖性不强,(好的)