23种设计模式+额外常用设计模式汇总 (持续更新)

  1. 单一职责原则SRP(Single Responsibility Principle)
    就一个类而言,应该仅有一个引起它变化的原因。
  2. 开放-关闭原则OCP(Open-CLosed Principle)
    一个软件的实体应该对扩展开放,对修改关闭。
  3. 里氏代换原则(Liskov Substitution Principle)
    子类型必须能够替换他们的基类(父类)。
  4. 依赖倒置原则DIP(Dependence Inversion Principle)
    要依赖于抽象,不要依赖于具体。
  5. 最少知识原则LKP(Least Knowledge Principle)或称 迪米特法则(LoD)
    一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话
  6. 接口隔离原则(ISP)
    使用多个专门的接口比使用单一的功能更多的总接口要好
  7. 合成/聚合原则
    要尽量使用合成/聚合,而不是继承关系达到复用的目的

1.单一职责原则SRP(Single Responsibility Principle)

所谓单一职责原则就是一个类仅有一个引起它变化的原因。这里变化的原因就是所说的“职责”。如果一个类有多个引起它变化的原因,那么也就意味着这个类有多个职责,再进一步说,就是把多个职责耦合在一起了。

2.开放-关闭原则OCP(Open-CLosed Principle)

所谓开放-闭合原则,指的是,一个类应该对扩展开放,最修改关闭。一般也被简称开闭原则,开闭原则是设计中非常核心的一个原则。
开闭原则要求的是,类的行为是可以扩展的,而且是在不修改已有代码的情况下进行扩展,也不必改动已有的源代码或者二进制代码。
实现开闭原则的关键就在于合理地抽象、分离出变化和不变化的部分,为变化的部分留下可扩展的方式,比如,钩子方法或者是动态组合对象等。
这个原则看起来也很简单。但事实上,一个系统要全部做到遵守开闭原则,几乎是不可能的,也没这个必要。适度的抽象可以提高系统的灵活性,使其可扩展、可维护,但是过度的抽象,会大大的增加系统的复杂程度。应该在需要改变的地方应用开闭原则就可以了,而不用到处使用,从而陷入过度设计。

3.里氏代换原则(Liskov Substitution Principle)

子类型(subtype)必须能够替换它们的基(父)类型。(子类可以以父类的身份出现)。
比如,如果是父类是鸟,鸟会飞。企鹅

『设计模式』--常见面向对象设计原则相关推荐

  1. 面试必问:设计模式遵循的面向对象设计原则!

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 1.为什么需要设计模式 其实没有设计模 ...

  2. 设计模式必看--面向对象设计原则

    每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复劳动.                                   ...

  3. 设计模式:001面向对象设计原则

    里氏替换原则:函数传父类对象(User)也必定可以穿子类对象(Vip)[vip继承与User] class User:def show_name(self):passclass VIPUser(Use ...

  4. uml图中的各种箭头_设计模式学习笔记(二):UML与面向对象设计原则

    1 UML 1.1 UML UML(Unified Modeling Language)是统一建模语言,1997年11月UML1.1版本提交给OMG并正式通过,成为建模语言的个那个也标准.2003年6 ...

  5. 《设计模式:可复用面向对象软件的基础》——面向对象设计原则、创建型模式(笔记)

    文章目录 二.面向对象设计原则(补充) 2.1 重新认识面向对象 2.2 面向对象设计原则 2.2.1 依赖倒置原则(DIP) 2.2.2 开放封闭原则(OCP) 2.2.3 单一职责原则(SRP) ...

  6. 设计模式(三)——面向对象设计原则

    设计模式需要遵循基本的软件设计原则.可维护性(Maintainability)和可复用性(Reusability)是衡量软件质量的重要的两个属性: 可维护性:软件能够被理解.改正.适应及扩展的难易程度 ...

  7. 代码质量评判标准、设计模式、面向对象设计原则速查表

    文章目录 代码质量评判标准 软件腐化的原因 提高系统可复用性的几点原则 可维护性与可复用性并不完全一致 面向对象设计原则 1. 面向对象设计的六大设计原则表 2. 图解面向对象涉及的六大原则 1. 开 ...

  8. 设计模式-合成复用原则-》面向对象设计原则

    合成复用原则是面向对象设计原则的 7 条原则中剩下的最后一条,下面我们将对其进行详细地介绍. 合成复用原则的定义 合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚 ...

  9. C++设计模式(李建忠主讲) 2.面向对象设计原则

    C++设计模式 2.面向对象设计原则 重新认识面向对象 面向对象设计原则 依赖倒置原则(DIP) 开放封闭原则(OCP) 单一职责原则(SRP) Liskov替换原则(LSP) 接口隔离原则(ISP) ...

最新文章

  1. cocos2dx 场景的切换
  2. bootstrap select多选
  3. Rails测试《十一》添加邮件发送程序及测试邮件发送程序
  4. 企业 全功能邮件服务器
  5. mybatis_user_guide(7) SQL语句构建器类
  6. 疯狂java讲义价格_疯狂java讲义
  7. 20条.net编码习惯
  8. 重磅!李沐在斯坦福开新课了!
  9. qt 3d迷宫游戏_鲨话游戏史FPS游戏竟然40年前就有了?暴露年龄系列,慎入!
  10. 精致简约的高速下载神器 - Motrix~~高速下载百度网盘资源!
  11. elasticsearch,spring boot,mybatis项目小结
  12. Java环境变量配置cobalt strick4.4启动
  13. 高亮显示化学结构式中的子结构----Highlight a substructure in the depiction
  14. java什么是reference_如何理解java中的Reference和引用类型?正确的案例讲解
  15. coco数据集大小分类_COCO数据集使用
  16. 如何做好功能测试,提升测试质量和效率?(测试人员必知)
  17. PMP项目管理“人际关系与团队技能”归纳总结
  18. 小白要搭建电商系统,看看这个开源项目!
  19. 比较叶绿体基因组提供海草适应性进化新见解
  20. jq过渡收缩动画用js实现

热门文章

  1. Android开发之EditText输入显示文字hint大小设置
  2. Android开发之通过ImageView名称从文件夹拿到ImageView的Drawable对象的方法
  3. java复用类_java复用类
  4. java swing调用H5_atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97...
  5. iOS 使用 MailCore2
  6. 计算力学专业和计算机专业区别,力学类包括哪些专业
  7. 超简单的利用plist 查看ipa包名及其它信息
  8. FIR仿真module_04
  9. Mvc过滤器的使用【转载】
  10. Emptoris Sourcing Problems