-
简而言之,1.它的控制不是反**的,即当A需要B时,A会从B中去新建,然后加到A上。
2.控制是系统知道A需要B,会提前把B给A,A不需要再要求。
它的特殊性,如果你做了春天,你就会知道它,一旦你做了它,你就会知道它。
-
控制反转 IOC 也称为 DI(依赖注入)。
根据您的需要提供您想要的。 能够控制对象的生成和解耦。
-
解耦,效果好,使用后重量从未**过。
-
让我们从一个例子开始:
例如,如果我们需要使用另一个类 B 的方法,我们需要在 A 中实例化 B,然后调用 B 的方法。 **下面:
class a
比方说,我们还有 C 类、D 类等。 它们都需要使用方法 B,并且需要实例化方法 B,然后调用方法 B。 如果 b 的实例化是系统的一个非常耗费资源的过程,例如数据库连接等。
这样一来,每当一个类需要调用 b 的方法时,就需要实例化 b 一次,这将是一个非常耗费资源的过程。
这在 Spring 框架中是如何工作的?
Spring 框架控制反转我是这样理解的,每次我们使用 Spring 框架的时候,我们都不想在单实例模式下配置 XML 文件、XML 配置 Bean 和默认 Bean 的 ID,并且通过 Bean 类,通过反射机制可以创建这个实例,因此,Spring 框架通过反射为我们创建实例,并为我们维护它们。 A 需要引用类 B,在 XML 中,我们通过构造函数或属性将 B 注入到 A 中,这实际上是 Spring 框架,它将 B 实例的引用传递给 A 的成员变量。
看完上面的内容,你就会明白,之前你需要负责在A类中创建一个B的实例,现在把创建工作交给Spring框架,然后Spring框架类注入对实例的引用。 创建对象的责任转移,即我们所理解的控制权的逆转。 同时,Spring 为我们维护了一个 B 实例,所以在需要引用新类的时候,我们不需要重复实例化 Class B,这也减少了系统资源的消耗。
-
这是控制反转 (IOC):
1).IOC是Inversion of Control的缩写,有时被翻译为“控制倒置”,而另一些则被翻译为“控制倒置”或“控制倒置”。
2).1996 年,Michael Matttson 在一篇关于面向对象框架的文章中首次引入了 IOC 的概念。 简单来说,就是把一个复杂的系统分解成相互配合的对象,这些对象类被封装起来,使内部实现对外透明,从而降低了解决问题的复杂度,可以灵活地复用和扩展。
IOC理论提出,依赖对象与依赖对象的解耦是在“第三方”的帮助下实现的,如下图所示