系列总链接:https://blog.csdn.net/qq_22122811/article/details/112360387

会修电脑不会修收音机-依赖倒转原则:(截图来自于《大话设计模式》)

思考:

程序有没有用到过的这个地方?

这里大致明白意思是:高层模块和底层模块间依赖性不应过强,应该需要标准的接口,通信的内存接口,通用的主板接口。

启发:

依赖倒转原则,有三点,高低层模块之间不能相互依赖,这一点联想到主板和内存间的关系,就可以理解,在程序中可以理解为主程序块,和功能性模块,只需要接口相互传递,但相互的内部实现不应该影响,就和SQL操作模块和主程序模块不应该互相影响;

第二点,抽象不应该依赖于细节,细节应该依赖抽象;

参照博客:https://www.cnblogs.com/cbf4life/archive/2009/12/15/1624435.html

进一步理解,抽象不依赖细节,就是说IDriver不能依赖于某一牌子的车型,所以IDriver中驾驶的车应该也为抽象类,不能是细节,即某类型车;

细节应该依赖于抽象,就是说由IDriver分配的变量zhangsan应该具有IDriver的方法Drive(), 并且需要基于此,实现自己的方法体,即“契约精神”。

设计原则03:会修电脑不会修收音机-依赖倒转原则相关推荐

  1. 第 5 章 会修电脑不会修收音机 —— 依赖倒转原则

    抽象不应该依赖细节,细节应该依赖抽象.针对接口编程,不要针对实现编程. A:高层模块不应该依赖低层模块.两个都应该依赖抽象. B:抽象不应该依赖细节.细节应该依赖抽象. 为什么要叫倒转? 面向过程的开 ...

  2. Java设计模式 - 依赖倒转原则

    文章目录 1. 违反依赖倒转原则 2. 遵守依赖倒转原则 3. 依赖关系传递的3种方式 3.1 接口传递 3.2 构造方法传递 3.3 setter方法传递 4. 依赖倒转原则的注意事项和细节 Dep ...

  3. 设计原则04:会修电脑不会修收音机-里氏代换

    系列总链接:https://blog.csdn.net/qq_22122811/article/details/112360387 会修电脑不会修收音机-里氏代换:(截图来自于<大话设计模式&g ...

  4. 大话设计模式(十 会修电脑不会修收音机?——聊设计模式原则)

    (续上篇) 小菜学会了反射后,正在兴奋,想着大鸟的问题.此时,突然声音响起.       "死了都要爱,不淋漓尽致不痛快,感情多深只有这样,才足够表白.死了都要爱--"       ...

  5. 《大话设计模式》之--第5章 会修电脑不会修收音机?----依赖倒转原则

    第5章 会修电脑不会修收音机?----依赖倒转原则 5.1MM请求修电脑 小莱和大鸟吃完晚饭后,在一起聊天. 此时,突然声音响起. "死了都要爱,不淋滴尽致不痛快,感情多深只有这样,才足够表 ...

  6. 从零开始学习Java设计模式 | 软件设计原则篇:依赖倒转原则

    在本讲,我将为大家介绍软件设计原则里面的第三个原则,即依赖倒转原则. 概述 什么是依赖倒转原则呢?我们来看一下下面这段描述: 高层模块不应该依赖低层模块,两者都应该依赖其抽象:抽象不应该依赖细节,细节 ...

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

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

  8. 软件设计原则——依赖倒转原则

    依赖倒转原则 高层模块不应该依赖低层模块,两者都应该依赖其抽象: 抽象不应该依赖细节,细节应该依赖抽象. 简单的说就是要求对抽象进行编程,不要对实现进行编程, 这样就降低了客户与实现模块间的耦合. [ ...

  9. 设计模式的七大设计原则:其三:依赖倒转原则

    依赖倒转原则: 基本介绍: 依赖倒转原则(Dependence Inversion Principle)是指: 1.高层模块不应该依赖低层模块,二者都应该依赖其抽象 2.抽象不应该依赖细节,细节应该依 ...

最新文章

  1. Linux下编译运行C程序
  2. Java实用教程笔记 子类与继承2
  3. linux 控制台输入命令无效_在控制台输入什么命令都提示commandnotfound原因是什么?suselinux...
  4. [bmgr]android应用数据备份以及还原
  5. java并发编程:设计原则与模式_java编程设计模式一——策略模式
  6. 在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能
  7. [zw]薰衣草/紫花苜蓿+桑椹/(黑红蓝)霉等植物
  8. winform基础,主要控件简单介绍,以及小练习
  9. 点击列表高亮_办公小技巧:妙用条件格式 高亮显示查询结果
  10. 淘宝、天猫、京东、苏宁等平台抢购脚本
  11. 使用chkconfig管理开机自启动
  12. alt+tab突然不能切换窗口(樱桃机械键盘)
  13. 使用Cython提高python代码执行速度
  14. 设置-关于手机里显示IMEI号和MEID。
  15. 忘记保存,如何利用历史版本找回丢失的Word文件
  16. AJAX异步判断注册用户名是否重复
  17. tensorflow学习笔记-bili莫烦
  18. android 画字体并换行,android 使用canvas画字符时换行(用TextPaint实现,Paint不易实现)...
  19. JS - 获取选中复选框的值(checkBox)
  20. 不错的JSP论坛(有源码)

热门文章

  1. 绝地求生显示服务器未,绝地求生出现这样提示Starting BattlEye Service...
  2. html 中a标签的问题(无反应,跳转,调用方法)
  3. 计算机专业内存8g和16g差距大吗,原始8G和16G计算机内存之间有很大区别吗?
  4. python批量生成ppt
  5. 视联网四方面优势引领行业技术
  6. Ubuntu20.04+RealSense D455
  7. 基于PHP的酒店预订管理系统
  8. 【网络原理】TCP/IP协议五层模型
  9. excel 快速填充所有非连续空白单元格
  10. 给openlabi搭建web网站网站