Spring之IOC篇章详解

来源:互联网 发布:烘焙食谱软件 编辑:程序博客网 时间:2024/05/22 06:17

       专题一   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管理了。













0 0