Spring 中 IOC 和依赖注入的区别。
控制反转是一种设计原则,它有助于反转对象创建的控制。
根据 Martin Fowler 撰写的论文,控制反转是一种原则,其中程序的控制流被反转:程序员不再控制程序的流程,而是外部源(框架、服务、其他组件)控制它。就像我们将某些东西插入到其他东西中一样。他提到了关于 EJB 2.0 的一个例子。
依赖注入是一种实现 IOC 原则的设计模式。DI 提供对象所需的对象。假设类 X 依赖于 Y。因此,与其在类“X”中创建 Y 的对象,不如通过构造函数或 setter 注入来注入依赖项。
序号 | 关键 | IOC | 依赖注入 |
---|---|---|---|
1 | 设计原则 | 它是程序控制流反转的设计原则 | 它是 IOC 原则的子类型之一 |
2 | 实现 | 它是一个由多种设计模式实现的术语,例如服务定位器、事件、委托和依赖注入 | DI 是一种可以通过构造函数和 setter 注入实现的设计模式 |
3 | 用例 | 面向切面编程是实现 IOC 的一种方式 | 在业务需求发生变化的情况下,无需进行代码更改 |
广告