依赖倒置原则

优点:可以减少类间的耦合性丶提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险,Spring的 IOC DI 依赖注入也采用了依赖倒置

生活中的的依赖倒置原则:

例如说:春运都回家,但是回家的地点则不同,那每个人到站不同,但是都会从12306买票回家

代码中演示依赖倒置

我拿课程去举例子:
接下来创建一个接口ICourse,抽象方法学习课程

public interface ICourse {void studyCourse();
}

有不同的课程,我想学习哪一个 接下来创建Java课程 ,前端课程,Python课程

public class JavaCourse implements ICourse {public void studyCourse() {System.out.println(" 在学习Java课程");}
}
public class PythonCourse implements ICourse {public void studyCourse() {System.out.println(" 在学习 Python");}
}
public class FECourse implements ICourse {public void studyCourse() {System.out.println(" 在学习前端课程");}
}

我在网上学习有我自己的账号

public class QJC {private ICourse iCourse;public QJC(ICourse iCourse) {this.iCourse = iCourse;}public void setiCourse(ICourse iCourse) {this.iCourse = iCourse;}public void studyICourse(){iCourse.studyCourse();}
}

接下来进行代码演示

public class Test {public static void main(String[] args) {/*没有抽象  导致类 经常修改  V1*//* QJC qjc=new QJC();qjc.studyFECourse();qjc.studyJavaCourse();qjc.studyPythonCourse();*//*通过方法注入  v2*//* QJC qjc=new QJC();qjc.studyICourse(new JavaCourse());qjc.studyICourse(new FECourse());qjc.studyICourse(new PythonCourse());*//*构造器  注入  v3*//*   QJC qjc=new QJC(new JavaCourse());qjc.studyICourse();QJC fe=new QJC(new FECourse());fe.studyICourse();QJC py=new QJC(new PythonCourse());py.studyICourse();*/QJC qjc=new QJC(new JavaCourse());qjc.studyICourse();qjc.setiCourse(new PythonCourse());qjc.studyICourse();}
}

这样能够实现耦合度降低,就算新增一个课程也不需要修改原来的代码,只需要实现ICourse方法,将其进行注入调用studyICourse() 就可以学习
UML图解:

第三章节:单一原则

设计模式的五大原则(二)相关推荐

  1. 设计模式的五大原则(五)

    迪米特原则 一个对象对其他对象最少的了解,又叫做最少知道的原则 尽量降低,类与类之间的耦合,类之间的弱耦合,如果大量使用迪米特法则 生活中的迪米特原则 例如:Boos 让部门经理我要你们部门的人的所有 ...

  2. 关于设计模式五大原则

    什么是设计模式 设计模式是一种应对多场景或者复杂的业务场景的一种工具,有利于代码的复用/维护,系统模块的组织和设计的沟通 设计模式五大原则 开闭原则 开闭原则(OCP: open closed pri ...

  3. 设计模式之SOLID原则再回首

        本科阶段学过设计模式,那时对设计模式的五大原则--SOLID原则的概念与理解还是比较模糊,此时过去了2年时间,在学习<高级软件工程>课程中老师又提到了设计模式,课程中还详细讨论了五 ...

  4. 设计模式原则(单一、开放封闭、里氏代换、依赖倒转、迪米特法则五大原则)...

    原文:设计模式原则(单一.开放封闭.里氏代换.依赖倒转.迪米特法则五大原则) 单一职责原则 单一职责原则,就一个类而言,应该仅有一个引起它变化的原因.   如果一个类承担的职责过多,就等于把这些职责耦 ...

  5. 设计模式六大设计原则 详细整理版

    一.单一职责原则 定义: 一个接口,类或者方法只有一个原因引起变化.即只有一个职责. 解读: 职能多样是一个诱惑,一个方法如果能根据入参(可变参数等)或其他判断条件实现不同或多种功能,看起来很强大而且 ...

  6. 设计模式-六大设计原则(附加实际开发建议以及计算器例子)

    使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.设计模式使代码编制真正工程化,是软件工程的基石脉络,如同大厦的结构一样. 文章结构: 1.单一职责原则(SRP): 2.里氏替换原 ...

  7. Java设计模式之五大创建型模式(附实例和详解)

    一.概况 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. (2)结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥 ...

  8. java五大原则_Java成长第五集--面向对象设计的五大原则

    S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则(Programming Priciple)的首字母缩写.以下图说明: 下面就个人的理解来说说这五大原则的含义到 ...

  9. Java 23种设计模式案例:原则及分类

    2019独角兽企业重金招聘Python工程师标准>>> 一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模 ...

最新文章

  1. 成都Uber优步司机奖励政策(4月8日)
  2. 《BI项目笔记》基于雪花模型的维度设计
  3. RNN Layer使用(学习笔记)
  4. Unity 3D观察者设计模式-C#委托和事件的运用
  5. 神州云科DCN存储管理IP_干货!DCN校园网大二层解决方案详解
  6. angular2安装笔记
  7. Log4j快速使用精简版
  8. mysql如何下载msi_2、Windows下MySQL数据库下载与安装详细教程 MSI方式
  9. 前端插件——Bootstrap Dual Listbox 简介
  10. flashAndPHP 简单交互
  11. 一文讲清楚目标检测中mAP、AP、precison、recall、accuracy、TP、FP、FN、TN
  12. OpenShift 4 之升级集群
  13. Android热修复更改图标,Android手写热修复(一)--ClassLoader
  14. hadoop之 Zookeeper 分布式应用程序协调服务
  15. python数值计算库Numpy学习之—np.linalg.norm(求范数)
  16. WxErrorException: 错误代码:40163
  17. AutoCAD2014的安装
  18. 别被吉利的“车企”一面晃了眼
  19. 2d短草丛踩踏及idle效果
  20. 这个AI算法,可以帮“元宇宙”虚拟人进行虚拟更换衣服

热门文章

  1. css 文字重叠_同时文字字体重叠显示不全解决方法
  2. 开放数据平台、助力国家实验室:盘点默默耕耘在数据科学领域的清华力量
  3. 什么是标准半峰宽度,如何得到?
  4. 戴尔计算机主板电路图,戴尔Dell-D630主板电路图.pdf
  5. 揭秘APP软件开发者百万富翁之路:造程序的工厂(好东西)
  6. 8 种最坑的SQL错误用法,你有没有踩过?
  7. Hyperledger Fabric 2.0 官方文档中文版 第5章 开发应用程序
  8. 触景无限-角蜂鸟SDK使用笔记1
  9. Golang中各种类型转换
  10. EWB软件仿真数字电路