IoC(Inversion of Control)字面翻译过来是控制反转
根据字面意思理解的话那么大家可能会有三个小疑问
1.谁控制谁?控制的双方是什么?
2.什么是反转?反转什么?怎样反转?
3.为什么要反转?反转的好处是什么?正向有什么坏处?
接下来我们来一 一解释这些疑问
要想什么了解IOC那么我们必须要了解应用和资源的概念
如果A类调用B类的方法,我们就说A类是应用 B类是资源。
我们说在传统的开发方式上,下列代码是耦合的代码,也就是说当B类发生了变化,会影响到A类.这样不利于我们的维护。
spring 框架加入进来后,各个资源不由应用直接调用,而是由spring统一管理,当应用需要资源时,由spring向应用提供。
1.谁控制谁?控制的双方是什么?
应用控制资源 ,控制的双方是应用和资源
2.什么是反转?反转什么?怎样反转?
原来是应用控制资源,现在spring加入后,由spring控制资源,由spring将资源提供给应用。这就是反转的概念。
3.为什么要反转?反转的好处是什么?正向有什么坏处?
正向的坏处就是 应用与资源耦合度高,不利于程序维护。 所以我们就需要spring控制反转来解耦。
Spring的出现改变了以往应用程序为中心的局面,一切以Spring为中心,应用程序运行需要使用的资源完全由Spring来提供,Spring握有应用程序运行过程中的所需要使用的全部资源。
Spring反向控制应用程序所需要使用的外部资源
优势:所有资源由Spring统一调度,统一管理,使对象的控制更加集中,避免应用程序中出现多余的对象,浪费资源