一、控制反转

正常控制权是由调用方掌握,控制反转将控制权交给了容器,在运行时由容器决定具体的实现。

二、依赖注入

依赖注入是控制反转的一种实现,调用某个类是对这个类(被调用类)的依赖,正常是直接实例化(被调用类),而依赖注入,是通过构造函数等方式由容器注入到调用方

三、控制反转和依赖注入的关系

  • 控制反转是一种思想
  • 依赖注入是一种设计模式

IoC框架使用依赖注入作为实现控制反转的方式,但是控制反转还有其他的实现方式,例如说依赖查找,所以不能将控制反转和依赖注入等同。