依赖倒转原则
2016-01-04 19:12
225 查看
介绍
A:高层模块不应该依赖低层模块。两个都应该依赖抽象
B:抽象不应该依赖细节。细节应该依赖抽象
![](http://img.blog.csdn.net/20160105095429867)
例如
在面向过程的开发时,为了使得常用代码可以复用,一般都会把这些代码写成许许多多函数程序库,这样我们在做新的项目时,去调用这些低层的函数就可以了。比如我们做的项目大多要访问数据库,所以我们把发那个为你数据库的代码写成了函数,每次做新项目时就去调用这些函数。这也就叫做高层模块依赖低层模块。
但是问题就出在这里了,我们在做新项目的时候,发现业务逻辑的高层模块都是一样的,但客户希望使用不同的数据库或存储信息方式,这时就出现麻烦了。我们希望能再次利用这些高层模块,但高层模块都是与低层的访问数据库绑定在一起的,每办法复用这些高层模块,这就非常糟糕了。
A:高层模块不应该依赖低层模块。两个都应该依赖抽象
B:抽象不应该依赖细节。细节应该依赖抽象
例如
在面向过程的开发时,为了使得常用代码可以复用,一般都会把这些代码写成许许多多函数程序库,这样我们在做新的项目时,去调用这些低层的函数就可以了。比如我们做的项目大多要访问数据库,所以我们把发那个为你数据库的代码写成了函数,每次做新项目时就去调用这些函数。这也就叫做高层模块依赖低层模块。
但是问题就出在这里了,我们在做新项目的时候,发现业务逻辑的高层模块都是一样的,但客户希望使用不同的数据库或存储信息方式,这时就出现麻烦了。我们希望能再次利用这些高层模块,但高层模块都是与低层的访问数据库绑定在一起的,每办法复用这些高层模块,这就非常糟糕了。
相关文章推荐
- Mysql 关键字-保留字
- [漫画]程序员的日常生活 63
- Cookie入门
- 销毁活动
- 学习Javascript闭包(Closure)
- Win Server2008 服务器远程连接数量设置
- R-Latex sweave 如何隐藏R代码
- db2合并多行数据
- [漫画]程序员的日常生活 62
- [漫画]程序员的日常生活 61
- Hybrid app开发总结
- JavaScript事件处理程序 学习笔记
- java.lang.IllegalStateException: The content of the adapter has changed but ListView..
- (实训第一天)Linux下编译运行C源程序的过程(图解)
- [漫画]程序员的日常生活 60
- [漫画]程序员的日常生活 59
- struts2 s:iterator标签
- 深入分析JavaWeb Item41 -- 邮件的发送与接收原理
- JavaScript事件处理程序 学习笔记
- Makefile笔记整理