[bigdata-095] IoC 控制反转 的本质
2017-06-08 20:03
246 查看
Java通常用来做企业级项目。代码量非常大。所以如果修改,也会很麻烦。比如说,根据面向对象的角度,假如你加了一些新功能,创建一些新类新对象,就会面临一个重新 编译和部署的过程,这是很繁琐的。
能不能不重新编译部署呢?如果不重新编译部署,就意味着java源码不可以修改。既然源码不可以修改,那么就只能改配置文件。既然只修改配置文件,那么就要有一套能从配置文件里获取对象的机制。从配置文件里获取了对象,对象和对象之间需要进行交互,那么就用接口来实现交互。
由此,产生的IOC机制:用java bean从xml文件创建对象; 对象和对象之间以接口进行交互,一切交互以接口进行。主动控制,是在应用程序里主动创建各种对象,比如工厂方法。那么,如果对象在xml里创建出来,xml一旦形成,就是持续静态存在除非文件不存在或者更新,因此就不存在“主动控制”了,因此从逻辑上上,这个创建过程就只能由容器决定什么时候生成对象,就形成了“被动控制”,也就是控制反转。
这样下来,就不需要修改java代码了,也不需要重新部署了,有什么新功能,修改xml文件然后扔上去替换掉就行了。
能不能不重新编译部署呢?如果不重新编译部署,就意味着java源码不可以修改。既然源码不可以修改,那么就只能改配置文件。既然只修改配置文件,那么就要有一套能从配置文件里获取对象的机制。从配置文件里获取了对象,对象和对象之间需要进行交互,那么就用接口来实现交互。
由此,产生的IOC机制:用java bean从xml文件创建对象; 对象和对象之间以接口进行交互,一切交互以接口进行。主动控制,是在应用程序里主动创建各种对象,比如工厂方法。那么,如果对象在xml里创建出来,xml一旦形成,就是持续静态存在除非文件不存在或者更新,因此就不存在“主动控制”了,因此从逻辑上上,这个创建过程就只能由容器决定什么时候生成对象,就形成了“被动控制”,也就是控制反转。
这样下来,就不需要修改java代码了,也不需要重新部署了,有什么新功能,修改xml文件然后扔上去替换掉就行了。
相关文章推荐
- PHP简单的IoC控制反转实现
- 控制反转(IoC)与依赖注入(DI)
- 控制反转(IoC)与依赖注入(DI)
- IoC/DI,控制反转和依赖注入
- Spring 之 控制反转(IoC), 依赖注入(DI)和面向切面(AOP)
- IOC 控制反转
- Spring Core---------IoC控制反转
- 控制反转(IOC)与依赖注入(DI)
- Spring的控制反转(IOC)和依赖注入(DI)详解
- 演进式例解控制反转(IoC)、依赖注入(DI)之二
- 控制反转(IoC)与依赖注入(DI)
- 精通android体系架构、mvc、常见的设计模式、控制反转(ioc)
- 控制反转(IOC)的简单实现及原理分析
- 代码的演化-DI(理解依赖注入di,控制反转ioc)
- Spring IoC反转控制的快速入门
- Spring的IOC(Inversion of Control)(控制反转)
- Spring框架之IOC(控制反转)
- 控制反转(IOC) 和依赖注入(DI) 的理解
- Spring框架中IoC(控制反转)的原理(转)
- IoC和控制反转