控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来降低程序代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
IoC实际遵循的是DIP依赖倒置原则,上层模块不应该依赖于低层模块,二者应该通过抽象来依赖。Ioc把程序上层对下层的依赖转移到了第三方容器进行管理装配。
通常我们所说的Ioc指的是DI依赖注入,依赖注入的方式分三种
构造函数注入
属性注入
方法注入