原则,故名思议则是本质的意思。所谓擒贼先擒王,研究设计 模式自然要先了解设计原则,所有的模式都是在这些原则的基础之上发展起来的,有的是侧重一个,有的是多个都有所涉及。看完设计模式之后,我感觉到每个模式 都有这些原则的影子,还渗透着面向对象的三大属性,也觉得这些原则也都有相通之处,,正是有了他们才使我们由代码工人转为艺术家。下面我来点评一下六大原 则,望各位拍砖:

1、单一职责原则(Single Responsibility Principle,简称SRP)
      单一职责原则,就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或者一 直这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。而软件设计真正要做的许多内容,就是发现职责,并把 这些职责相互分离。

一句话点评:高内聚低耦合的绝佳体现,不要乱拉关系,独善其身挺好。

2、 开放--封闭原则(The Open-Closed Principle,简称OCP)
       开放--封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。即对于扩展是开放的,对于更改是封闭的。 我们不可能做到未卜先知,在设计的时候尽可能让一个类足够好,设计好了就不要去修改了;不能完全封闭的情况下,当发生变化时,我们就创建抽象来隔离以后发 生的同类变化。

一句话点评:开放扩展,封闭更改,开合有度是一门艺术。

3、依赖倒转原则(Dependence Inversion Principle )
      依赖倒转原则,指高层模块不应该依赖低层模块,两个都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。说白了就是要针对接口编程,不要对实现编 程。举个例子:计算机硬件中,如果内存坏了,那么只需要换一个内存条就可以了,而不需要去换一个主板,在这里内存是一个接口类,只要符合他的规格要求就 行,无论是那一根。

一句话点评:搞建筑时要做设计师,而不是砖瓦工,抽象的蓝图要靠具体的材料一点点实现。

4、里氏代换原则(Liskov Substitution Principle,简称LSP)
     里氏代换原则,子类型必须能够替换掉他们的父类型。在软件里面,把父类都替换成其子类,程序的行为不会发生变化。正是由于子类型的可替换性才使得使用父类型的模块在无需修改的情况下就可以扩展。

一句话点评:长辈给了你继承的权利就一定要做赡养的义务,把长辈的职责都要承担起来。

5、迪米特法则(Law of Demeter)
      迪米特法则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法时,可以通过第三者转 发这个调用。类之间的耦合越弱,就越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。 主要是强调了类之间的松耦合。

一句话点评:不要和陌生人说话,若两国交战要尽量避免正面冲突,多派使者协商调度。

6、合成/聚合复用原则(Composition/Aggregation Principle],简称CARP)
     合成聚合复用原则,尽量使用合成/聚合,尽量不使用类继承。合成聚合是“has  a”的关系,而继承是“is  a”的关系。由于继承是一中强耦 合的结构,父类变,子类必变。所以不是“is  a”关系,我们一般不要用继承。优先使用合成聚合复用原则,有助于保持每个类的封装,降低继承的层次。
     一句话点评:优生优育,不要盲目繁衍

本文转自:http://blog.csdn.net/educast/article/details/7226846

一句话评论设计模式六大原则相关推荐

  1. 一句话评论设计模式六大原则--转

    原则,故名思议则是本质的意思.所谓擒贼先擒王,研究设计模式自然要先了解设计原则,所有的模式都是在这些原则的基础之上发展起来的,有的是侧重一个,有的是多个都有所涉及.看完设计模式之后,我感觉到每个模式都 ...

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

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

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

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

  4. PHP 设计模式六大原则

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

  5. Java 设计模式六大原则

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

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

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

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

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

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

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

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

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

最新文章

  1. args, sys.argv的区别
  2. Chrome用户请尽快更新:谷歌发现两个严重的零日漏洞
  3. docsify管理学习笔记
  4. 关于I2C和SPI总线协议
  5. CentOS HarBor安装与配置
  6. SpringBoot中的Tomcat是如何启动的
  7. 中国古代杰出的科学家
  8. dxp2004鼠标增强工具_26 工具栏的设置
  9. 有的网线接口为什么做不到轻薄化?
  10. 蚂蚁回应渠道之争;微软更新致大规模服务中断;OpenSSH 8.4 发布 | 极客头条
  11. 始发 终点站 附近几站 全部查询 原来代码基本弃用 数组见上篇文章
  12. 科技也能这么酷:无人驾驶轮椅要来啦
  13. GPUImage实现水印
  14. Java 项目经典代码
  15. 自动刷新徐小明股市直播内容
  16. Axure原型图教程
  17. Spring Boot获取节假日API
  18. 新版UI切片源码 m3u8云切片程序PHP视频切片转码系统易语言源码 云转码工具源码 代码完全开源
  19. Banner打造广告自动轮播图
  20. 第17节 三层交换机技术—工作原理及相关命令

热门文章

  1. Halcon知识: 矩形测量
  2. Windows dos 在某个目录下的所有文件中查找包含某个字符串的文件
  3. webpack4.x开发环境配置
  4. mysql索引分析_MySQL索引分析和优化
  5. c# 调matlab传字符串_C# Matlab 相互调用
  6. qpython3l手机版怎么用_qpython怎么用
  7. git maven 一键部署_Jenkins实现一键部署maven项目
  8. 面试题整理3 大数的表示及加减法问题
  9. Java集合框架之fastutil
  10. Excel表格数据导入到SQLServer数据库