依赖注入/控制反转

控制反转(Inversion of Control,缩写为IoC)是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,总结即为获得依赖对象的方式反转了。IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序,降低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。

  1. 几个词

    • 依赖倒置原则(DIP):一种软件架构设计的原则,程序中所有的依赖关系都应该终止于抽象类或者接口(抽象概念)。
    • 控制反转IoC(Inversion of Control):一种反转流、依赖和接口的方式(DIP的具体实现方式)。
    • 依赖注入DI(Dependency Injection):将依赖对象的创建和绑定转移到被依赖对象类的外部来实现,用来反转依赖(IoC的一种实现方式)。
    • IoC容器:依赖注入的框架,用来映射依赖,管理对象创建和生存周期(DI框架)。
  2. DI实现方式

    • 构造函数注入
    • 属性注入
    • 接口注入

参考文章依赖注入