Java IoC(控制反转)/DI(依赖注入)
来源:互联网 发布:手机记牌器软件 2016 编辑:程序博客网 时间:2024/05/22 08:08
控制反转 Inversion of Control
控制反转不是什么技术而是一种思想,将设计好的对象交给容器控制,而不是像传统那样由对象内部控制;首先要明确“谁控制谁,控制什么,为什么叫反转,哪些反转了”
- 谁控制谁:Ioc容器控制对象
- 控制什么:控制外部资源获取和对象实例的创建
- 为什么叫反转:由容器来帮忙创建及注入依赖对象
注释:考虑一下常规情况下的应用程序,如果要在A里面使用C,你会怎么做呢?当然是直接去创建C的对象,也就是说,是在A类中主动去获取所需要的外部资源C,这种情况被称为正向的。那么什么是反向呢?就是A类不再主动去获取C,而是被动等待,等待IoC的容器获取一个C的实例,然后反向的注入到A类中。 - 哪些反转了:依赖对象的获取反转了
依赖注入 Dependency Injection
组件之间的依赖关系是由容器在运行期决定的,要明确“谁依赖谁,为什么需要依赖,谁注入谁,注入什么”
- 谁依赖谁:应用程序(某个对象)依赖Ioc容器
- 为什么需要依赖:应用程序需要Ioc容器提供需要的外部资源
- 谁注入谁:Ioc容器注入应用程序的某个对象,就是应用程序依赖的对象
- 注入什么:注入某个对象需要的外部资源
控制反转和依赖注入概念梳理: 根据上面描述,不难看出,依赖注入和控制反转只是从不同角度来描述,依赖注入是从应用程序角度在描述:是应用程序依赖容器创建并且注入他所需要的外部资源;控制反转是从容器角度在描述:容器控制应用程序,由容器反向响应用程序注入所需要的外部资源。
小结:其实IoC/DI对编程带来的最大改变不是从代码上,而是从思想上,发生了“主从换位”的变化。应用程序要获取什么资源都是主动出击,但是在IoC/DI思想中,应用程序就变成被动的了,被动的等待IoC/DI容器来创建并注入它所需要的资源了,使得它们松散耦合,有利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活
阅读全文
0 0
- Java IoC(控制反转)/DI(依赖注入)
- Java面试-Spring IOC(控制反转)和DI(依赖注入)
- 控制反转(IOC),依赖注入(DI),耦合
- 依赖注入DI/控制反转IoC
- 控制反转(IoC)与依赖注入(DI)
- 控制反转IOC和依赖注入DI
- 控制反转IOC与依赖注入DI
- 控制反转IOC和依赖注入DI
- 控制反转(IoC)与依赖注入(DI)
- 控制反转IOC与依赖注入DI
- 控制反转(IOC)和依赖注入(DI)
- 控制反转(IoC)与依赖注入(DI)
- 控制反转(IoC)与依赖注入(DI
- 控制反转(IoC)与依赖注入(DI)
- 控制反转(IoC)与依赖注入(DI)
- 控制反转(IoC)与依赖注入(DI)
- 控制反转(IoC)与依赖注入(DI)
- 控制反转(IoC)与依赖注入(DI)
- ActiveForm 的下拉菜單 dropDownList
- 一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系
- 关于《go程序设计语言》书中一个OS样例的坑(对于初学者来说)
- python列表与元组
- BST二叉搜索树
- Java IoC(控制反转)/DI(依赖注入)
- 目标文件解析命令:objdump和readelf
- gabor滤波器python代码实现
- HDOJ1261 大数乘除法应用
- 递归算法
- 分治策略
- 配置Tomcat的HTTPS
- oracle中的ID号实现自增长的方法(序列)
- bzoj 5000: OI树