IOC:控制反转(Inversion of Control,英文缩写为 IOC)
简单来讲就是把代码的控制权从调用方(用户)转变成被调用方(服务端)
以前的代码控制权在调用方,所以要每当程序要更新修改功能时,一定要大量修改调用方的代码才行,工程量大,维护麻烦。
后来有了IOC,可以将所有的功能模块交由配置文件(XML)统一管理,如果要增加或者删除某个功能模块时,只需要通过配置文件增加或删除那个模块的关联就可以了。
全程不用修改调用方(用户)的代码,大大减少了程序更新时造成的损失。
我们将代码的调用权(用户)从调用方转移给被调用方(服务端)的设计模式称为控制反转(IOC)
要实现 IOC,必须满足下面两个条件:
(1)在程序启动时就要根据配置文件关联的各个模块创建对象,放在Spring容器里面。
(2)调用方(用户)使用一个接口或类的引用(不用 new对象,这也是Spring实现可插拔的关键),就可以创建获得对象。
我们将这种不用 new,而是根据接口或者类的引用就可以从被调用的容器里获得创建的对象的方式称为“依赖注入”。
所以,控制反转(IOC)等于是“依赖注入”加上面向接口的编程思想的实现。