刚学习了设计模式,发现设计模式的六大原则基本上都是为了提高代码的可维护性、可读性、扩展性。现在先来简单的了解一下它们的内容:

一、单一职责原则

概念:就一个类而言,应该只有一个引起它变化的原因。

理解:一个类只有一个职责,如果职责过多,代码就会臃肿,可读性就差,也会更加难以维护。

why:我们在做编程的时候,很自然给一个类加各种各样的功能,这就意味着,无论任何需求要来,都需要改这个窗体类,这样维护起来麻烦,不能复用,缺乏灵活性。

二、开闭原则

概念:是说软件实体(类、模块、函数等等)应该可以扩展,但是不能修改。

理解:对于扩展是开放的,对于更改是封闭的。意味着一个实体是允许在不改变它的源代码的前提下变更它的行为.

三、依赖倒置原则

概念:1、上层模块不应该依赖底层模块,它们都应该依赖于抽象。2、抽象不应该依赖于细节,细节应该依赖于抽象。

理解:简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

四、接口隔离原则

概念:1、客户端不应该依赖它不需要的接口。2、一个类对另一个类的依赖应该建立在最小的接口上。

理解:使用多个专门的接口比使用单一的总接口要好。一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。

五、迪米特法则

概念:一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。

理解:迪米特法则不希望类之间建立直接的联系。如果真的有需要建立联系,也希望能通过它的友元类来转达。

六、里氏替换原则

概念:何基类可以出现的地方,子类一定可以出现。

理解:只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

现在只是先简单的了解下,之后会有更深入的理解。

设计模式--六大原则相关推荐

  1. PHP 设计模式六大原则

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

  2. Java 设计模式六大原则

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

  3. 快速理解设计模式六大原则

    设计模式的核心总结起来就一句话:用抽象构建框架,用实现扩展细节.目的就是代码修改的改动量最小 设计模式六大原则 单一职责原则 很好理解,一个类职责要单一,不要承载过多的职责,就比如说我们电脑上所有的文 ...

  4. 子慕谈设计模式系列(二)——设计模式六大原则

    六大原则 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 前言 设计模式不容易用文字描述清楚,而过多的代码,看起来也让人摸不到头脑,加上词语或者文字描述的抽象感,很容易让 ...

  5. 设计模式六大原则——合成/聚合复用原则(CARP)

    1.定义 简而言之,对于合成/聚合复用原则的定义就是:要尽量使用合成和聚合,尽量不要使用继承. 2.释义 为什么"要尽量使用合成和聚合,尽量不要使用继承"呢? 这是因为: 第一,继 ...

  6. 五分钟了解设计模式六大原则(上)

    目录 简介 设计模式是什么? 设计模式六大原则是什么? 设计模式有哪些? 单一职责原则(Single Responsibility Principle) 我们应该如何使用单一职责呢? 里氏替换原则(L ...

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

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

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

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

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

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

  10. 设计模式六大原则(SOLID)

    设计模式六大原则(SOLID) Single Responsibility Principle:单一职责原则 Open Closed Principle:开闭原则 Liskov Substitutio ...

最新文章

  1. 关闭webstorm自动保存,并显示文件未保存标识
  2. TranslateMessage()的困惑
  3. 自己封装JSTL 自定义标签
  4. Android开发--Http操作介绍(二)
  5. 《超越想象——Windows_8应用设计与开发》
  6. 【控制】《现代控制理论》谢克明老师-第2章-线性控制系统状态空间表达式的求解
  7. 埃斯顿机器人 王杰高_埃斯顿自动化王杰高博士受邀赴韩参加“ROBOT WORLD 2016”等一系列相关活动...
  8. 用gdb来学习c语言(linux环境下)
  9. 淮北农村生活污水处理设备——十四五生态环境保护规划
  10. Python 转义字符与原字符
  11. Docker 配置加速器
  12. 他曾被视为马斯克第二,现在是等着坐牢的骗子
  13. 带你认识SSD的SATA、mSATA 、PCIe和M.2四种主流接口。联想g31t-lm2主板接线图
  14. 电子计算机的产品情况,广东省市场监督管理局关于2020年度广东省电子计算机配套产品及耗材产品质量监督抽查情况的通告...
  15. idea启动报符号缺失,无法启动与构建
  16. MethodParameter
  17. wifi搜索不到连接不上的问题(企业局域网wifi)
  18. Sklearn学习笔记,LogisticRegression的用法详解
  19. 网络语言c位是什么意思,c位是什么意思?C位出道是什么梗?
  20. WIN7系统安装VisualSVN Server

热门文章

  1. 极大似然法估计与极大验后法估计
  2. 鸟哥的Linux私房菜(基础篇)-第四章、安装 CentOS 5.x 与多重开机小技巧
  3. git和码云的使用以及搭建git服务器
  4. Mybatis的第三章动态sql总结
  5. ftp安装和虚拟用户创建(终于搞清楚了)
  6. 《C++面向对象高效编程(第2版)》——3.4 赋值操作符
  7. (诊断)No module named MySQLdb
  8. 【编程之美】3.5 最短摘要的生成
  9. J2EE中使用jstl报http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar错...
  10. MyEclipse 快捷键及经验总结