1、开闭原则

  定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

  理解:当业务出现新需求时,尽量通过扩展了的方式来时实现修改,原来的代码能不动就不动,因为改动原来的代码可能会出现一些未知的情况

2.里氏代换原则

  定义:所有引用基类的地方必须能够透明的使用其子类对象。(子类型能够替换掉它们的父类型)

  理解:这是一种良好的规范,要求我们开发基础父类时,只可扩展父类,不可重写父类方法,(即子类直接替换父类也可以实现同样的效果),但是可以重载

     重载时:入参时子类需要比父类范围大,返回时子类需要比小(只有这样,子类替换父类时,执行的还是父类方法)

     eg:f.test(Map),c.test(HashMap);

      f.test(new HashMap())  执行父类方法

      c.test(new HashMap())  执行子类方法

3、依赖倒转原则

   定义:

    1、高层模块不应该依赖低层模块,两者都应该依赖于抽象(抽象类或接口)

    2、抽象(抽象类或接口)不应该依赖于细节(具体实现类)

    3、细节(具体实现类)应该依赖抽象

  理解:调用方法的人永远只通过接口调用,不依赖具体实现。(低耦合,面向接口开发)

4、接口隔离原则

  定义:建立单一接口,不要建立臃肿庞大的接口

  理解:一个接口不要试图能实现太多功能,而是各个类建立专用的接口,这样才能更加灵活。但是也可以太多细化,这样会导致接口过多。

5、迪米特法则

  定义:又叫最少知道原则,一个对象应该对其他对象有最少的了解,这个应该很好理解,就是降低各模块之间的耦合一个对象应该对其他对象有最少的了解,这个应该很好理解,就是降低各模块之间的耦合

  理解:设计接口时,只暴露他人需要的接口,将其他接口隐藏,减少依赖关系,实现松耦合。

6、单一职责原则

  定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责,应该仅有一个引起它变化的原因

  理解:单一职责的思想个人强调职责,接口隔离原则强调接口细化。这样做的好处有

    1、降低类的复杂度

    2、提高代码可读性

    3、降低变更引起的风险

7、组合/聚合复用原则

  定义:尽量使用组合/聚合的方式,而不是继承的方式来达到复用的目的

  理解:组合/聚合方式的优点

      1、黑箱复用,代码细节不为外部所知

      2、可以不影响其他代码修改,灵活

    组合/聚合方式的缺点:

      1、可能需要管理较多的对象或者方法

    继承的优点:

      1、基类大部分功能直接继承到派生类,并且修改基类,派生类也会修改,方便

    继承的缺点:

      1、父类的所有方法都会暴露给子类,白箱复用。

      2、父类修改时,子类也会修改,不够灵活。

转载于:https://www.cnblogs.com/jaxlove-it/p/9343118.html

设计模式6+1大原则相关推荐

  1. 23种设计模式及OOP7大原则

    一. 23种Java设计模式介绍 概述 设计模式是针对某一类问题的最优解决方案,是从许多优秀的软件系统中总结出的.Java中设计模式(java design patterns)通常有23种.模式可以分 ...

  2. [Android设计模式之旅]——设计模式的6大原则

    前言 已经很久没有写博客了,今天开始继续学习Android的23种设计模式,首先在学习设计模式之前我们得先了解设计模式的六大基本原则--单一SRP(单一指责原则).OCP(开闭原则).LSP(里氏替换 ...

  3. Java中的24种设计模式与7大原则

    一.创建型模式 1.抽象工厂模式(Abstract factory pattern): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类. 2.生成器模式(Builder patte ...

  4. Java设计模式总结——6大设计原则

    从今年的七月份开始学习设计模式到9月底,设计模式全部学完了,在学习期间,总共过了两篇:第一篇看完设计模式后,感觉只是脑子里面有印象但无法言语.于是决定在看一篇,到9月份第二篇设计模式总于看完了,这一篇 ...

  5. 设计模式之六大设计原则

    文章目录 一.六大设计原则(实际有七个) 1.单一职责 2.里氏替换原则 3.依赖倒置原则 4.接口隔离原则 5.迪米特法则(最少知道原则) 6.开闭原则 7.合成复用原则 二.总结 一.六大设计原则 ...

  6. 【设计模式系列24】GoF23种设计模式总结及软件设计7大原则

    设计模式总结及软件设计七大原则 设计模式系列总览 前言 软件设计7大原则 开闭原则(Open-Closed Principle,OCP) 里氏替换原则(Liskov Substitution Prin ...

  7. 设计模式6大原则-开闭原则

    设计模式6大原则-开闭原则 定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 开闭原则理念就是当需求改变时,希望在不改变原有代码的前提下,通过扩展模块.函数来满足新需求. 开闭原则是其他 ...

  8. 设计模式概述—6大设计原则

    第一部分:6大设计原则 六大设计原则: 1)Single Responsibility Principle:单一职责原则 2)Open Closed Principle:开闭原则 3)Liskov S ...

  9. 云计算架构设计6大原则,你遵循了吗?

    2006年,第一个云计算(Cloud Computing)产品诞生,云计算的概念也被提出,现在云计算几乎已经渗入所有的行业和应用场景中.我们不一定能直接感受到云计算对日常生活.工作.学习的影响,但作为 ...

最新文章

  1. android饼状图简书,Charts-饼状图
  2. 轻松入门模型转换和可视化
  3. 您不是专业测试人员的10个理由!
  4. java super父类的父类_合理使用父类的财富——Java中的super
  5. FIR数字滤波器设计——频率抽样法
  6. 用gojs写的流程图demo
  7. 贵州2021高考状元成绩查询,2021年贵州高考最高分多少分,历年贵州高考状元
  8. 类加载器ClassLoader的角色
  9. matplotlib绘制平滑曲线
  10. 你能说出 Kafka 这些原理吗?
  11. matlab脑电打码,matlab 脑电信号特征提取程序
  12. ajax教程初始模板,ajax实战入门模板
  13. WPS Excel表格安装宏插件
  14. springboot读取xml配置文件
  15. 用Python批量操作文件
  16. 从 ie10浏览器下Symbol 未定义的问题 探索vue项目如何兼容ie低版本浏览器(ie9, ie10, ie 11 )
  17. Luogu P3488 [POI2009]LYZ-Ice Skates
  18. Win10如何用cmd或者Powershell批量安装字体
  19. You-Get, Annie 视频下载器 一键安装脚本
  20. 银湖网更改手机号那极致糟糕的体验

热门文章

  1. 一个python网上文档
  2. 梯度下降原理及在线性回归、逻辑回归中的应用
  3. LVQ神经网络的分类
  4. OpenCV函数 Canny 检测边缘
  5. MATLAB中sort函数对矩阵数进行排序
  6. 多线程随机数组生成+双线程快速排序(C++实现)(0.2秒排100W个数字)
  7. java迁移文件下的文件_Laravel迁移 - 一次性多次迁移(文件)
  8. Spring MVC 全注解配置 (十一)
  9. Triangular Pastures (二维01背包)
  10. RedHat(Linux) Oracle数据库设置开机自启动