IOC(控制反转思想)原型理论推导

Posted mo-jian-ming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOC(控制反转思想)原型理论推导相关的知识,希望对你有一定的参考价值。

1.0时代:需要一个Dao层(接口+ImpL)、对应一个Service层(接口+ImpL)

1、Dao层封装了数据库操作,Service层 ImpL类 通过 new 一个Dao的ImpL类  并赋值给  Dao接口,实现对Dao层的调用,从而达到Dao层对于客户透明的目的。

2、具体代码:

private XXXDao xxxDao = new xxxDaoImpL()

 3、缺点:随着客户的需求不断改变,new 的ImpL类也要随之改变,高耦合

技术图片

2.0时代:引入了Set进行动态注入ImpL类的思想

1、在Service层ImpL类中,不通过new的方法给Dao接口创建ImpL类,而是加入Set带参函数为Dao接口赋值

2、具体代码:

public void setXXXDao(XXXDao xxxDao){ this.xxxDao = xxxDao; }

3、优点:改变了程序主动创建对象的方式,通过Set带参函数变成了被动接受对象(反转控制),不再因为客户需求的迭代,而改变原有的代码,低耦合

 

抽象结果:(IoC容器)

 通常new一个实例,控制权由程序员控制,而“控制反转”是指new实例工作不由程序员来做而是交给Spring容器来完成。

技术图片   

以上是关于IOC(控制反转思想)原型理论推导的主要内容,如果未能解决你的问题,请参考以下文章

spring核心思想:IOC(控制反转)和DI(依赖注入)

Spring核心思想:IOC(控制反转)DI(依赖注入)和AOP(面向切面编程)

IOC控制反转原理

Spring

控制反转(ioc)和 面向切面(AOP)

控制反转IOC与依赖注入DI - 理论篇