博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之依赖倒转原则
阅读量:5119 次
发布时间:2019-06-13

本文共 834 字,大约阅读时间需要 2 分钟。

抽象不应该依赖细节,细节应该依赖于抽象。说白了,就是要针对接口编程,不要对实现编程。可以用电脑的设计来理解,无论主板,CPU,内存,还是硬盘都是针对接口设计的。如果针对实现设计,内存就要对应到具体每个品牌的主板,就会出现换内存就需要把主板换掉的尴尬。

依赖倒转原则:1.高层模块不应该依赖低层模块,两个都应该依赖抽象。 2.抽象不应该依赖细节,细节应该依赖抽象。

那为什么要叫倒转呢?面向过程开发时,为了使得常用的代码可以复用,一般都会把这些常用代码写成许许多多函数的程序库,这样我们在做新项目的时候去调用这些低层的函数就可以了。但这样做就有可能出问题,我们做新项目时,发现业务逻辑和高层模块都是一样的,但客户却希望使用不同的数据库或存储信息的方式,这时就麻烦了。我们希望再次利用这些高层模块,但高层模块是与低层的数据库绑定在一起的,没办法复用。而如果不管高层模块还是低层模块都依赖于抽象,具体一点就是接口或抽象类,只要接口是稳定的,那么任何一个更改都不用担心其他受到影响。这就使得无论高层还是低层都可以很容易地被复用,这才是最好的方法。

但为什么依赖了接口或抽象类就不怕更改了呢?这里涉及了里氏代换原则。

里氏代换原则是Barbara Liskov女士在1988年发表的。白话翻译就是一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成子类,程序的行为没有变化。

里氏代换原则:子类型必须能够替换掉他们的父类型。

这时学继承就要理解的相关概念。也正是有了这个原则,使得继承复用成为了可能。只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能在父类的基础上增加新的行为。

说白了,依赖倒转就是除了约定的接口,谁也不要依靠谁,这样大家都可以灵活自如。

转载于:https://www.cnblogs.com/shicaiyou/p/9209186.html

你可能感兴趣的文章
如何判断主机是大端还是小端(字节序)
查看>>
Centos7 日志查看工具
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
Android 画图之 Matrix(一)
查看>>
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>
poj2569
查看>>
使用pygal_maps_world.i18n中数据画各大洲地图
查看>>
sql server必知多种日期函数时间格式转换
查看>>
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>
timeline时间轴进度“群英荟萃”
查看>>
python if else elif statement
查看>>
网络编程
查看>>
文本隐藏(图片代替文字)
查看>>
java面试题
查看>>
提高码力专题(未完待续)
查看>>
pair的例子
查看>>
前端框架性能对比
查看>>