『设计模式』--常见面向对象设计原则
23种设计模式+额外常用设计模式汇总 (持续更新)
- 单一职责原则SRP(Single Responsibility Principle)
就一个类而言,应该仅有一个引起它变化的原因。 - 开放-关闭原则OCP(Open-CLosed Principle)
一个软件的实体应该对扩展开放,对修改关闭。 - 里氏代换原则(Liskov Substitution Principle)
子类型必须能够替换他们的基类(父类)。 - 依赖倒置原则DIP(Dependence Inversion Principle)
要依赖于抽象,不要依赖于具体。 - 最少知识原则LKP(Least Knowledge Principle)或称 迪米特法则(LoD)
一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话 - 接口隔离原则(ISP)
使用多个专门的接口比使用单一的功能更多的总接口要好 - 合成/聚合原则
要尽量使用合成/聚合,而不是继承关系达到复用的目的
1.单一职责原则SRP(Single Responsibility Principle)
所谓单一职责原则就是一个类仅有一个引起它变化的原因。这里变化的原因就是所说的“职责”。如果一个类有多个引起它变化的原因,那么也就意味着这个类有多个职责,再进一步说,就是把多个职责耦合在一起了。
2.开放-关闭原则OCP(Open-CLosed Principle)
所谓开放-闭合原则,指的是,一个类应该对扩展开放,最修改关闭。一般也被简称开闭原则,开闭原则是设计中非常核心的一个原则。
开闭原则要求的是,类的行为是可以扩展的,而且是在不修改已有代码的情况下进行扩展,也不必改动已有的源代码或者二进制代码。
实现开闭原则的关键就在于合理地抽象、分离出变化和不变化的部分,为变化的部分留下可扩展的方式,比如,钩子方法或者是动态组合对象等。
这个原则看起来也很简单。但事实上,一个系统要全部做到遵守开闭原则,几乎是不可能的,也没这个必要。适度的抽象可以提高系统的灵活性,使其可扩展、可维护,但是过度的抽象,会大大的增加系统的复杂程度。应该在需要改变的地方应用开闭原则就可以了,而不用到处使用,从而陷入过度设计。
3.里氏代换原则(Liskov Substitution Principle)
子类型(subtype)必须能够替换它们的基(父)类型。(子类可以以父类的身份出现)。
比如,如果是父类是鸟,鸟会飞。企鹅
『设计模式』--常见面向对象设计原则相关推荐
- 面试必问:设计模式遵循的面向对象设计原则!
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 1.为什么需要设计模式 其实没有设计模 ...
- 设计模式必看--面向对象设计原则
每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复劳动. ...
- 设计模式:001面向对象设计原则
里氏替换原则:函数传父类对象(User)也必定可以穿子类对象(Vip)[vip继承与User] class User:def show_name(self):passclass VIPUser(Use ...
- uml图中的各种箭头_设计模式学习笔记(二):UML与面向对象设计原则
1 UML 1.1 UML UML(Unified Modeling Language)是统一建模语言,1997年11月UML1.1版本提交给OMG并正式通过,成为建模语言的个那个也标准.2003年6 ...
- 《设计模式:可复用面向对象软件的基础》——面向对象设计原则、创建型模式(笔记)
文章目录 二.面向对象设计原则(补充) 2.1 重新认识面向对象 2.2 面向对象设计原则 2.2.1 依赖倒置原则(DIP) 2.2.2 开放封闭原则(OCP) 2.2.3 单一职责原则(SRP) ...
- 设计模式(三)——面向对象设计原则
设计模式需要遵循基本的软件设计原则.可维护性(Maintainability)和可复用性(Reusability)是衡量软件质量的重要的两个属性: 可维护性:软件能够被理解.改正.适应及扩展的难易程度 ...
- 代码质量评判标准、设计模式、面向对象设计原则速查表
文章目录 代码质量评判标准 软件腐化的原因 提高系统可复用性的几点原则 可维护性与可复用性并不完全一致 面向对象设计原则 1. 面向对象设计的六大设计原则表 2. 图解面向对象涉及的六大原则 1. 开 ...
- 设计模式-合成复用原则-》面向对象设计原则
合成复用原则是面向对象设计原则的 7 条原则中剩下的最后一条,下面我们将对其进行详细地介绍. 合成复用原则的定义 合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚 ...
- C++设计模式(李建忠主讲) 2.面向对象设计原则
C++设计模式 2.面向对象设计原则 重新认识面向对象 面向对象设计原则 依赖倒置原则(DIP) 开放封闭原则(OCP) 单一职责原则(SRP) Liskov替换原则(LSP) 接口隔离原则(ISP) ...
最新文章
- cocos2dx 场景的切换
- bootstrap select多选
- Rails测试《十一》添加邮件发送程序及测试邮件发送程序
- 企业 全功能邮件服务器
- mybatis_user_guide(7) SQL语句构建器类
- 疯狂java讲义价格_疯狂java讲义
- 20条.net编码习惯
- 重磅!李沐在斯坦福开新课了!
- qt 3d迷宫游戏_鲨话游戏史FPS游戏竟然40年前就有了?暴露年龄系列,慎入!
- 精致简约的高速下载神器 - Motrix~~高速下载百度网盘资源!
- elasticsearch,spring boot,mybatis项目小结
- Java环境变量配置cobalt strick4.4启动
- 高亮显示化学结构式中的子结构----Highlight a substructure in the depiction
- java什么是reference_如何理解java中的Reference和引用类型?正确的案例讲解
- coco数据集大小分类_COCO数据集使用
- 如何做好功能测试,提升测试质量和效率?(测试人员必知)
- PMP项目管理“人际关系与团队技能”归纳总结
- 小白要搭建电商系统,看看这个开源项目!
- 比较叶绿体基因组提供海草适应性进化新见解
- jq过渡收缩动画用js实现
热门文章
- Android开发之EditText输入显示文字hint大小设置
- Android开发之通过ImageView名称从文件夹拿到ImageView的Drawable对象的方法
- java复用类_java复用类
- java swing调用H5_atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97...
- iOS 使用 MailCore2
- 计算力学专业和计算机专业区别,力学类包括哪些专业
- 超简单的利用plist 查看ipa包名及其它信息
- FIR仿真module_04
- Mvc过滤器的使用【转载】
- Emptoris Sourcing Problems