看了一下书,还是慢慢感受到了面向对象编程的强大,依赖倒转原则的思想主要是:面向抽象(接口)编程,而不是针对细节编程。面向抽象编程的自己理解就是先将某个具体的事物先扩大,抽象成一类事物,先对这一类事物进行编程,然后再缩小,继承抽象类。考虑具体的事物,这样有利于扩展,灵活。如果是开始针对细节编程的话,那么写了一个具体的事物之后,又来了一个具体的事物,这时你又要重新写,不容易扩展,如果事物多了那么就特别的混乱,要修改某一个功能,那么整个的程序都要在修改一遍,那么天天都有班加了。

面向对象的设计:程序中的所有依赖关系都是终止于抽象类或者接口;反之,就是过程化的设计了。

看到书上有一个例子很好,先记下,可以加深理解。

电脑上的主板中有CPU,内存条,硬盘等等,开始刚买回来的电脑用的好好的,有两个内存条,可是有一天突然就蓝屏了,这种情况最主要的罪魁祸首还是内存条,那么如果知道这种情况,那么很可能就需要换一个内存条了,这时你不可能说去换一个CPU,因为CPU不涉及这一块,它们的职责是单一的,明确的,所以你只需要去买一个新的内存条。这时,你走进商场问工作人员你想要一内存条,找到适合你的内存条后,不管它是哪一个厂家生产的,你直接就插进插槽口了,这是因为他们的大小和插槽是一样大的,这就说明了一个问题:不管你用哪一个厂家生产的,他们的大小是固定的,因为他们是按照插槽的大小生产的,这时,内存条的插槽大小就好比是一个接口,只要这个接口固定了,那么所有生产内存条的厂家都必须做成这样的,否则就留着自己用吧。而进一步扩大,笔记本所有的主板的内存条的大小都是一样的,所以它好比是抽象的,所有的笔记本的都必须是这样子的,这样就统一了,内存条坏了你就可以换一个内存条,而不是把整块主板都换了。如果是这样的话,估计我们都要哭了。所以说:只要接口稳定,那么任何一个更改都不用担心了。

里氏代换原则:子类型必须能够替换掉它们的父类型。意思是:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说:在软件里面,把父类都替换成它的子类,程序的行为没有变化。

只有当子类可以替换到父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。正是由于子类型的可替换性使得使用父类类型的模块在无需修改的情况下可以扩展。

依赖倒转原则与里氏代换原则相关推荐

  1. 带你认识六种设计原则(开闭原则、里氏代换原则、依赖倒转原则....)

    前言 1. 设计原则 1.1. 开-闭原则 1.2. 里氏代换原则 1.3. 依赖倒转原则 1.4. 接口隔离原则 1.5. 合成/聚合原则 1.6. 迪米特法则 前言 学习设计模式之前先要了解其中的 ...

  2. 依赖倒转原则和里氏代换原则详解

    初学依赖倒转原则和里氏代换原则时,由于笔者水平有限,并没有看懂书上的专业术语的解释,经过反复摸索和学习,发现里氏代换原则和依赖倒转原则可以一言以蔽之: 里氏代换原则:开发时以抽象为核心,针对抽象编程, ...

  3. 设计原则 单一职责原则、开放封闭原则、依赖倒置原则、里氏代换原则、迪米特法则

    目录 1 单一职责原则 2 开放封闭原则 3 依赖倒置原则 4 里氏代换原则 5 迪米特法则 1 单一职责原则 比如:电脑内存坏了就应该更换内存,不应该更换CPU (内存负责内存.CPU负责CPU) ...

  4. Java设计原则之单一职责原则、开闭原则、里氏代换原则

    文章目录 面向对象设计原则概述 单一职责原则 开闭原则 里氏代换原则 面向对象设计原则概述 软件的可维护性(Maintainability)和可复用性(Reusability)是两个非常重要的用于衡量 ...

  5. 设计模式-设计原则之里氏代换原则

    设计原则之里氏代换原则 里氏代换原则 案例(正方形不是长方形) 案例改进 里氏代换原则 里氏代换原则是面向对象设计的基本原则之一. 里氏代换原则:任何基类可以出现的地方,子类一定可以出现. 通俗理解: ...

  6. 面向对象——依赖倒转原则和里氏代换原则

    什么是依赖倒转原则 下面三个就是 高层模块不依赖低层模块 抽象不依赖细节 细节依赖抽象 为什么需要这个原则? 假设现在需要开发一个软件,其中某个功能需要和数据库进行操作 那么,马上能想到的方法是不是就 ...

  7. 【设计模式系列学习笔记】5、依赖倒转原则和里氏代换原则

    依赖倒转原则:抽象不应该依赖细节,细节应该依赖于抽象: 针对接口编程,不要对实现编程: 高层模块不应该依赖底层模块,两个都应该依赖抽象: 抽象不应该依赖细节,细节应该依赖抽象: 里氏代换原则 一个软件 ...

  8. Java设计模式之设计的6大原则(开闭原则,里氏代换原则,依赖倒转原则,接口隔离原则,最少知道原则,合成复用原则)

    1. 开闭原则 核心思想:一个对象对外扩展开发,对修改关闭 意思就是:对类的改动是通过增加代码进行的,而不是修改现有的代码. 也就是说软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证 ...

  9. 大话设计模式三之单一职责原则、开放-封闭原则、依赖倒置原则、里氏代换原则

    单一职责原则 单一职责原则(SRP),意思就是说,功能要单一.准确解释是,就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或 ...

最新文章

  1. nginx的安装和使用(一)
  2. 如何将OpenCV中的Mat类绑定为OpenGL中的纹理
  3. python项目-python完整项目
  4. 用 Go 构建一个区块链 ---- Part 1: 基本原型
  5. count sort, radix sort, bucket sort
  6. iphone新旧手机数据传输已取消_如何取消iPhone手机App自动扣费?三种方法让你不再被“偷”...
  7. HDU 3665 Seaside
  8. 【Pytorch神经网络实战案例】16 条件WGAN模型生成可控Fashon-MNST模拟数据
  9. Leetcode--283. 移动零
  10. 追加的英文计算机,Latex同时添加中英文摘要
  11. 3+1保障:高可用系统稳定性是如何炼成的?
  12. 127.0.0.0与0.0.0.0的区别
  13. kelvin模型蠕变方程_第二章:黏弹性与波传播——2.4 力学模型和波传播
  14. GridView页脚汇总(统计)行的方法(.net 2.0)
  15. AngularJS 之 ng-model
  16. python文件创建人_Python文件处理:创建、打开、追加、读、写
  17. 微软九月份安全补丁提前通知
  18. 基于安卓android studio的电影订票选座APP设计 前台后台
  19. px4初探-qgroundcontrol安装
  20. ttk progress bar的显示

热门文章

  1. 高德智慧交通地图空间可视化SDK设计与实现
  2. mybatis like的两种写法
  3. CTF crypto(一)一些简单的编码与加密
  4. 2018-8-10-控件
  5. MC34063A MC34063 贴片SOP-8 变换器控制芯片 电流0.8A 1.2A 1.5A
  6. CVE-2021-3560-POLKIT本地提权漏洞复现
  7. Excel基础—Office2019安装
  8. python创建窗体_python生成窗口
  9. Apple Pencil有没有必要买?Apple Pencil平替哪款好?
  10. freemarker实现word模板