本文主内容主要是列出各项原则的定义与本人对六大原则的感悟。写出来的目是想与大家分享与讨论。正如有句话叫做一千个读者眼中有一千个哈姆雷特,如果大家对这六项原则的理解跟我有所不同,欢迎留言,大家共同探讨。

1 单一职责原则

定义:就一个类而言,应该仅有一个引起它变化的原因。应该只有一个职责。

类和方法的职责要单一,不要把不同的业务逻辑放在同一个类里面(或同一个方法里面)。

2 迪米特法则(最少知道原则):

定义:一个对象应该对其他对象保持最少的了解。

降低耦合,一个类尽可能的减少依赖。依赖越少越好。

3 里氏替换原则

定义:派生类(子类)对象可以在程式中代替其基类(超类)对象。

不要破坏类的基层体系。扩展父类的时候,不要去覆盖父类的非抽象方法;尽量去拓展,而不是去覆盖;

4 依赖倒置,面向接口编程;尽可能的通过接口去依赖

定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

面向接口编程;尽可能的通过接口去依赖;

5 接口隔离原则:

定义:客户端不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上。

接口尽可能的精简,单一。尽量细化接口,暴露的东西越少越好。(接口中的方法尽量少。也就是说,我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。)

6 开闭原则:

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

开闭原则是前5个原则的综合得分体现,前五个原则遵守得好,那么设计出来的软件自然是符合开闭原则的,如果前面5项原则遵守得不好,说明开闭原则遵守的不好。

总结:设计模式实际上表达的是这样子的一种思想:用抽象构建架构,用实现拓展细节。

因为抽象灵活性高,适用性广,因此用抽象来构建架构可以保持软件的稳定(前提是要抽象得合理)。而软件中的细节,我们用从抽象类中派生出来的实现类来进行拓展,当软件需求发生改变时,我们只需要根据需求重新派生新的实现类来进行拓展就行。

单一职责告诉我们类的职责要单一。迪米特法则告诉我们要降低耦合。里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们接口在的设计的时候要精简,单一;而开闭原则是像是总纲,他告诉我们要对扩展开放,对修改关闭。

java 设计原则_【无尽的编程之路】(java)-设计模式六大原则相关推荐

  1. java设计模式六大原则之场景应用分析

    面对项目中如此众多的设计模式,我们有时候无法 下手.在强大的设计框架也终脱离不了23种设计模式,6大原则.我们只要把内功修炼好,掌握其精髓也离我们不远了... 目录: 设计模式六大原则(1):单一职责 ...

  2. Java设计模式(二)简单工厂模式—设计模式六大原则

    文章目录 设计模式六大原则 1. 开闭原则 2. 里氏代换原则 3. 依赖倒转原则 4. 接口隔离原则 5. 迪米特法则(最少知道原则) 6. 合成复用原则 工厂设计模式 什么是工厂模式 工厂模式的好 ...

  3. 软件设计模式六大原则

    设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...

  4. Java 设计模式六大原则

    Java 设计模式六大原则 单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而 ...

  5. 设计模式六大原则-java复读记录

    设计模式六大原则-java复读记录 内容总览 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 设计模式 参考文献 内容总览 单一职责原则 里氏替换原则 依赖倒置原则 接口 ...

  6. python里氏替换原则_设计模式六大原则之里氏替换原则

    这是设计模式6 大原则系列的第二篇文章,附上前一篇文章地址:设计模式六大原则之单一职责原则.本文主要讲解设计模式的里氏替换原则. 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑.其 ...

  7. PHP 设计模式六大原则

    http://www.cnblogs.com/yujon/p/5536118.html 设计模式六大原则(1):单一职责原则 不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责 设计模 ...

  8. 设计模式六大原则之--开闭原则(OCP)

    设计模式六大原则之--开闭原则(OCP) 前言 1 描述 2 理解: 3 问题由来: 4 使用LoD的好处: 5 难点: 6 最佳实践: 7 范例: 前言 The Open - Closed Prin ...

  9. 设计模式六大原则之里氏替换原则、依赖倒置原则详解

    设计模式六大原则--里氏替换原则.依赖倒置原则详解 1.里氏代换原则(Liskov Substitution Principle) 概念 顾名思义,该原则用于经常发生替换的地方,在Java中指的是实现 ...

  10. 设计模式六大原则及常用模式详解

    设计模式六大原则 1.单一职责原则(Single Responsibility Principle) 定义 : 应该有且只有一个原因引起类的变化 注意 : 这里的类不光指类,也适用于方法和接口,比如我 ...

最新文章

  1. 在安装和使用Oracle过程中可能遇到的困难及其相应的解决措施
  2. SD-WAN将成为物联网部署中的骨干网—Vecloud
  3. python微信自动打卡_「微信辅助」吃鸡再也不怕了,Python用wxpy实现微信自动回复...
  4. 牛X,试用了下GitHub上22万Star的第一抢票神器,3秒钟抢到!
  5. 【十万个编程篇】写文章与“写项目”的差别
  6. django设置models.Model数据可以为空
  7. Linux格式化为物理卷,使用linux的pvs命令格式化输出物理卷信息报表
  8. 基于C#的socket编程的TCP异步实现
  9. c语言中不带任何修饰符的浮点常量是按,C语言练习题参考答案
  10. linux网络通讯架构实战篇【02、nginx整体结构、进程模型】
  11. 基于SSM框架的毕业设计管理系统 毕业设计-附源码211633
  12. 颜值为王 美图M8成京东618新机好评榜最大黑马
  13. Invalid watch source: undefined A watch source can only be a getter/effect function, a ref, a react
  14. 百度云网盘批量分享独立链接,简单暴力!!! 不用下载软件,直接在网页上搞定!
  15. [原创]中国象棋翻翻棋,休闲,对战,娱乐,小游戏,jQuery小游戏,下载即用,代码注释全(附源码)
  16. cisco配置主机计算机连接,Cisco交换机配置新手篇:正确连接和初级配置
  17. 域用户如何批量修改服务器时间,如何批量修改word中的域
  18. QT+opencv实现简单的图像处理界面
  19. 如何零基础学习解析几何
  20. 多边形内角和c语言编程,初二年级奥数多边形的内角和试题及答案

热门文章

  1. 每日一皮:这真的是亲爹吗...
  2. 每日一皮:进来说说昨天你是怎么过的?
  3. 不敢相信?System.currentTimeMillis()存在性能问题
  4. css文字背景虚化,通过实现背景模糊、文字颜色流光渐变、边框扩展等效果学习transition、transform、@keyframes等属性及伪元素的使用...
  5. C语言32位数加一精简,一个简单的32位多任务操作系统的实现(1)
  6. 帝国cms微信小程序多语言相亲交友制作记录难点使用的小程序组件分析
  7. save_path is not a valid checkpoint
  8. Parse error. Expected a command name
  9. python 点计算角度
  10. ubuntu nano用法