专题一   IOC

1.接口以及面向接口编程

a.结构设计中,分清层次以及调用关系,每层仅仅向外(或者上层)提供一组功能接口,各层间仅依赖接口而非实现类这样做的优点是,接口实现的变动不影响各层间的调用。这一点在公共服务中尤为重要。

b.“面向接口编程”中的“接口”。是用于隐藏详细实现。和实现多态性的组件 。

2.什么是IOC

控制反转(inversion of control)。控制权的转移,应用程序本身不负责依赖对象的创建和维护。

而是由外部容器负责创建和维护。(我们不负责对象的创建,由外部(这里指的是spring容器)容器来创建,我们来使用)

以下是一个spring 官网的图片来说明这个关系。

实现IOC的方法:DI(依赖注入,dependency injection)是其(控制反转IOC的)一种实现方式。所谓依赖注入,就是由IOC容器。在执行期间,动态的将某种依赖关系注入到对象之中。

IOC的目的:创建对象而且组装对象之间的关系。这个怎么理解呢?在初始化的时候,会创建一系列的对象。同一时候它可以把对象之间的这样的依赖关系通过注入的方式组织起来。

究竟是什么被反转了,Martin Fowler经过分析,得出了答案,“ 获得依赖对象的过程被反转了”,获得依赖的过程由自身管理,变成了由IOC容器主动注入。

接下来我们进行生动形象的描写叙述IOC,我们将IOC与房屋的中介做一个比喻:

房屋中介:
IOC

1.找中介
1.找IOC容器

2.中介介绍房子
2.容器返回对象

3.租房,入住
3.使用对象

spring 中的对象叫做  bean

自从有了IOC之后:

不必自己创建对象,由于IOC机制已经提供了。

面向接口编程。IOC隐藏了实现

不用再管理对象了。IOC管理了。

最新文章

  1. ar命令详解
  2. loadrunner用javavuser进行接口测试
  3. DOM--6 向应用程序中加入ajax
  4. 比较偏门的JVM语言Quercus - PHP on JVM
  5. vmware ubuntu server 联网
  6. R(四): R开发实例-map分布图
  7. Codeforces Round #290 (Div. 2) C. Fox And Names dfs
  8. SQL SERVER 主键约束
  9. MVC-列表页操作按钮调用脚本
  10. MSSQL批量替换网址字符串语句
  11. C语言的本质(26)——C标准库之数值字符串转换
  12. AdaBoost 算法原理及推导
  13. C# 数字字符串前面不足位补零方法
  14. No matching authentication protocol
  15. java 发邮件
  16. SVN重新设置用户名和密码
  17. python虚拟环境 | virtualenv 的简单使用 (图文)
  18. golang 反向代理
  19. 外媒速递:系统管理员必须掌握的20条Linux命令
  20. 关于docker容器和镜像的区别

热门文章

  1. Android N requires the IDE to be running with Java 1.8 or later
  2. Piston Pump Manufacturers - Mobile Cartridge Piston Pump: Advantages
  3. 找回Settings Sync的gist id和token
  4. MySQL安装示例数据库
  5. Linux启动流程CentOS6和7的区别
  6. 我的java web之路(JSP基本语法)
  7. Milk(sort+结构体)
  8. 方便三菱PLC模块调用的FB功能块分享
  9. [WPF自定义控件]使用WindowChrome自定义Window Style
  10. pdfjs viewer 开发小结