IOC,即控制反转(Inversion of Control,英文缩写为IoC),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转通常分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。
IOC的优势:实现组件之间的解耦,提升程序的灵活性和可维护性。
IOC的缺点:
一、建立对象的步骤变复杂了,不直观,固然这是对不习惯这种方式的人来讲的。
二、由于使用反射来建立对象,因此在效率上会有些损耗。但相对于程序的灵活性和可维护性来讲,这点损耗是微不足道的。
三、缺乏IDE重构的支持,若是修改了类名,还需到XML文件中手动修改,这彷佛是全部XML方式的缺憾所在。
IOC的应用:
IOC模式将耦合代码从程序中移出,放到统一的XML文件中管理。由IOC容器经过配置文件来管理对象的生命周期、依赖关系等,这样就不用从新修改并编译具体的代码,从而实现组件之间的解耦。