关闭

【设计模式】单一职责原则、开放封闭原则、依赖倒转原则

标签: 设计模式开放封闭原则依赖倒转原则
462人阅读 评论(0) 收藏 举报
分类:

本文内容参考自《大话设计模式》(程杰 著)

1. 单一职责原则(SRP)

就一个类而言,应该仅有一个引起它变化的原因。(反例:游戏逻辑与界面写在一起,则引起变化的原因有2个)

2. 开放-封闭原则(OCP)

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

两个特征:对扩展是开放的,对更改是封闭的。
(简单工厂模式就不符合这个原则,而工厂方法模式符合)

3. 依赖倒转原则

A. 高层模块不应该依赖低层模块,两者都应该依赖抽象。
这里写图片描述
B. 抽象不应该依赖细节,细节应该依赖抽象。(即针对接口编程,不要针对实现编程)

为何叫倒转:一般我会把常用代码写成函数库,之后写项目的时候直接调用底层的函数即可,比如访问数据库的代码等等,这叫做高层模块依赖低层模块。但是如果又有新的项目,业务逻辑的高层模块是一样的,不过客户希望用不同的数据库或者存储方式,这个时候由于高层模块依赖于低层的模块,因此无法复用。

里氏代换原则(LSP)

子类型必须能够替换掉它们的父类型。(即,在软件里面,把父类都替换成它的子类,程序的行为没有变化。这样子,才能在不修改父类的情况下进行扩展)

0
0
查看评论

设计模式--单一职责原则,开放封闭原则,依赖倒转原则

单一职责原则:一个类尽量只完成一种或者一类功能,活着一个方法只完成尽量原子(不可分割)的功能 具体的,在设计方法时,一个方法实现原子功能,这样该方法便于复用 开放-封闭原则:跟单一职责原则一个意思,(大话设计模式.pdf中分成两个讲)。封闭的意思就是“原子”的类或者方法尽量少修改,开放的...
  • Scalaaaaaa
  • Scalaaaaaa
  • 2016-07-11 11:51
  • 154

设计模式--工厂模式.策略模式.单一职责原则.开放封闭原则.依赖倒转原则

---简单工厂模式:利用Switch条件语句,达到工厂的模式,来实例化类对象。 ---策略模式:定义了算法家族,分别分装起来,是之间可以相互替换,让算法的变化不影响使用算法的用户,只要分析过程中需要不能时间用到不同的业务规则就可以考虑策略模式。 ---单一职责原则:就一个类而言,应该仅有一个引起他变...
  • u014095744
  • u014095744
  • 2016-05-09 16:08
  • 268

2016-12-28 单一职责原则+依赖倒转原则+里氏替换原则+开放封闭原则+接口隔离原则

单一职责原则SRP Single responsibility principle     就一个类而言,应该只有一个导致其变化的原因。一个职责就是一个变化的轴线,一个类如果承担的职责过多,就等于将这些职责耦合在一起。一个职责的变化可能影响到其他职责。   ...
  • u014222687
  • u014222687
  • 2016-12-28 15:04
  • 355

【设计模式】单一职责原则 & 开放封闭原则

*拍UFO~~单一职责原则 故事背景:智能手机功能强大,但是当生活就敲到遇到了传说的UFO,手机相机却掉链子了。 并没有摄像机照相机那么好的像素,拍照功能不是最佳。 定义:就一个类而言,应有一个引起它的变化 一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这...
  • W15732624773
  • W15732624773
  • 2016-04-17 21:21
  • 883

设计模式六大原则-单一职责原则、开放封闭原则、依赖倒转原则、里氏代换原则、迪米特法则、合成/聚合复用原则

原则,故名思议则是本质的意思。所谓擒贼先擒王,研究设计模式自然要先了解设计原则,所有的模式都是在这些原则的基础之上发展起来的,有的是侧重一个,有的是多个都有所涉及。看完设计模式之后,我感觉到每个模式都有这些原则的影子,还渗透着面向对象的三大属性,也觉得这些原则也都有相通之处,,正是有了他们才使我们由...
  • dizzthxl
  • dizzthxl
  • 2012-07-31 09:26
  • 2834

开放封闭原则,依赖倒转原则

开放封闭原则 1.开放封闭原则是说软件实体(类,模块,函数)应该是可以扩展,而不是可以修改,也就是说 ,对扩展是开放的,而对修改是封闭的。 2.只有依赖于抽象。实现开放封闭的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。让类依赖于固定的抽象, 所以对修改就是封闭的;而通过面向对象的继...
  • jiang_bing
  • jiang_bing
  • 2012-07-30 17:28
  • 384

设计模式六大原则之--单一职责原则(SRP)

1.单一职责原则,(Single Responsibility Principle). 定义:There should never be more than one reason for a class to change,应该有且仅有一个原因引起类的变更。 职责:业务逻辑,或者对象能够承担...
  • benbenxiongyuan
  • benbenxiongyuan
  • 2014-04-17 16:13
  • 1191

设计模式之禅--六大原则之单一职责原则

设计模式之单一职责原则 (本书例子来自设计模式之禅,内容多为作者对书的总结,加理解) 设计模式六大原则之一:单一职责原则 英文名:Single Responsibility Principle 简称SRP 定义:应该有且仅有一个原因引起类的变更 首先来看一个用户管理类的接口: ok,我相信...
  • TyroneRenekton
  • TyroneRenekton
  • 2016-07-26 17:35
  • 822

大话设计模式阅读笔记-依赖倒转原则

1.依赖倒转原则,也有翻译成依赖倒置原则的。依赖倒转原则,原话解释是抽象不应该依赖细节,细节应该依赖于抽象,这话绕口,说白了,就是针对接口编程,不要对实现编程。 2.里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别,也就是说,在软件里面...
  • liupinghui
  • liupinghui
  • 2017-06-02 20:57
  • 110

设计模式六大原则例子(六)-- 开放封闭原则(OCP)例子

之前我们对设计模式的六大原则做了简单归纳,这篇博客是对开放封闭原则进行的举例说明。 开放封闭原则的意义软件实体应该对扩展开放,对修改关闭,其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。 软件实体包括以下几个部分: 1.项目或软件产品中按照一定的逻辑规则划分的模块 ...
  • yabay2208
  • yabay2208
  • 2017-06-30 11:53
  • 347
    个人资料
    • 访问:409736次
    • 积分:6846
    • 等级:
    • 排名:第4069名
    • 原创:273篇
    • 转载:16篇
    • 译文:0篇
    • 评论:156条
    Personal Information

    中山大学 计算机科学与技术

    腾讯科技 后台开发工程师

    e-mail:jiangezh@qq.com

    GitHub:https://github.com/jiangeZh

    博客专栏
    最新评论