设计模式:依赖反转原则让高低层模块通过抽象间接依赖

一、依赖反转原则:Inversion Of Control—IOC

1、控制反转:流程控制从程序员反转给框架

控制反转是比较笼统的设计思想,并不是一个具体的实现方法,一般用来指导框架层的设计。

控制指对程序执行流程的控制。

反转指在没有框架前,程序员自己控制整个程序的执行。用了框架后,通过框架控制,就是流程的控制从程序员反转给了框架。

2、依赖注入:依赖的对象在外部创建好后,通过注入方式传递给类使用

依赖注入是一种具体编码技巧,不通过new的方式在类内部创建依赖类的对象,而是将依赖的类对象在外部创建好之后,通过构造函数,函数参数等方式(或注入)传递给类来使用。

3、依赖注入框架

通过依赖注入框架提供的扩展点,简单配置一下所有需要的类以及类与类之间依赖关系,就可以实现由框架来自动创建对象,管理对象的生命周期,依赖注入等原本需要程序员来做的事情。依赖注入框架有很多,比如Java Spring,Google Guide,Pico Container等。

4、依赖反转原则:高低层模块通过抽象相互依赖

(1)定义

依赖反转原则也叫依赖倒置原则,类似控制反转,指导框架层设计。

就是高层模块不依赖低层模块,它们共同依赖同一个抽象对象。抽象不要依赖具体实现细节,具体实现细节依赖抽象。

(2)作用

依赖倒置原则可以降低类间的耦合性。
依赖倒置原则可以提高系统的稳定性。
依赖倒置原则可以减少并行开发引起的风险。
依赖倒置原则可以提高代码的可读性和可维护性。

(3)案例

比如tomcat容器(高层模块) 调用执行 java web应用程序(低层模块),它们之间没有依赖关系,而是共同依赖Servlet规范(抽象)。Servlet规范不依赖具体的tomcat容器和java web应用的实现细节,而tomcat容器和java web应用程序依赖Servlet规范,它们之间通过Servlet规范(抽象)间接依赖,彼此耦合性低,功能开发互不影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值