依赖注入和控制反转
2017-01-18 15:35
232 查看
依赖:谁依赖于谁?为什么会有依赖?
答:某个对象依赖于IoC/DI的容器。依赖是不可避免的,
在一个项目中,各个类之间有各种各样的关系,不可能全部完全独立,这就形成了依赖。传统的开发是使用其他类时直接调用,
这会形成强耦合,这是要避免的。依赖注入借用容器转移了,被依赖对象实现解耦。
控制反转:谁控制谁?控制什么?为什么叫反转?
答:IoC/DI的容器控制对象,主要是控制对象实例的创建。反转是相对于正向而言的,那么什么算是正向的呢?
考虑一下常规情况下的应用程序,如果要在A里面使用C,你会怎么做呢?当然是直接去创建C的对象,也就是说,是在A类中主动去获取所需要的外部资源C,这种情况被称为正向的。
那么什么是反向呢?就是A类不再主动去获取C,而是被动等待,等待IoC/DI的容器获取一个C的实例,然后反向的注入到A类中。
依赖注入和控制反转是同一概念吗?
答:从上面可以看出:依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;
而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。
答:某个对象依赖于IoC/DI的容器。依赖是不可避免的,
在一个项目中,各个类之间有各种各样的关系,不可能全部完全独立,这就形成了依赖。传统的开发是使用其他类时直接调用,
这会形成强耦合,这是要避免的。依赖注入借用容器转移了,被依赖对象实现解耦。
控制反转:谁控制谁?控制什么?为什么叫反转?
答:IoC/DI的容器控制对象,主要是控制对象实例的创建。反转是相对于正向而言的,那么什么算是正向的呢?
考虑一下常规情况下的应用程序,如果要在A里面使用C,你会怎么做呢?当然是直接去创建C的对象,也就是说,是在A类中主动去获取所需要的外部资源C,这种情况被称为正向的。
那么什么是反向呢?就是A类不再主动去获取C,而是被动等待,等待IoC/DI的容器获取一个C的实例,然后反向的注入到A类中。
依赖注入和控制反转是同一概念吗?
答:从上面可以看出:依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;
而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。
相关文章推荐
- mvn deploy 报出400错误
- abap submit 的使用方法 不同情况
- spark参数配置
- Eclipse离线安装ADT插件
- nodejs中解决异步嵌套循环,循环嵌套异步
- C#学习笔记2
- 火星人的责任与担当
- Spring Boot:简单Hello World
- 解决Linux和Windows双系统的引导问题 转自 天极网
- java中三大特性之多态详解
- Apache kafka 工作原理介绍
- Android Signature V2 Scheme签名下的新一代渠道包打包
- MAVEN导入依赖的Jar包时Index downloads are disabled, search results may be incomplete问题的解决
- 解析Lua中的全局环境、包、模块组织结构
- QListWidget的一些常用函数
- JavaScript学习笔记(6)定时器
- 数据库实例: STOREBOOK > 用户 > 编辑 用户: SYS
- 保存退出vi编辑
- BZOJ 2120: 数颜色 && 2453: 维护队列 【带修莫队版题【也可以学黄学长分块
- 两个JSP页面跳转传参数