单一职责原则+开放-封闭原则+依赖倒转原则+里氏代换原则【设计模式】【学习总结】
来源:互联网 发布:蛋白诱导表达条件优化 编辑:程序博客网 时间:2024/04/29 07:56
以下内容多摘抄自《大话设计模式》,也有些来自网络,仅作学习备忘用。
单一职责原则(SRP)
Single Responsibility Principle
就一个类而言,应该仅有一个引起它变化的原因。
[why]:如果一个类承担过多的职责,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。
软件设计真正要做的,就是发现职责并把那些职责相互分离。
开放-封闭原则(OCP)
Open-Closed Principle
是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。
对于扩展是开放的(Open for extension),对于更改是封闭的(Closed for modification)。
面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。
依赖倒转原则
- 高层模块不应该依赖低层模块。两个都应该依赖抽象。
- 抽象不应该依赖细节,细节应该依赖于抽象。(针对接口编程,不要针对实现编程)
谁也不需要依赖谁,除了约定的接口,大家都可以灵活自如。
依赖倒转可以说是面向对象设计的标志,如果编写时考虑的是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或接口,那就是面向对象的设计,反之那就是面向过程的设计。
里氏代换原则(LSP)
Liskov Substitution Principle
任何基类可以出现的地方,子类一定可以出现。子类型必须能够替换掉它们的父类型。
根据此原则,在面向对象的设计中,企鹅类是不能继承鸟类的,因为鸟会飞,企鹅不会。注意这里与自然科学中的分类是有别的。自然科学强调事实真理,面向对象的设计中不完全与其相同。像这里,我们必须保证里氏代换原则成立,才使继承复用成为了可能。只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能在父类的基础上增加新的行为(此处可以与依赖倒转原则联系起来)。
由于子类型的可替换性,使得使用了父类类型的模块在无须修改的情况下就可以扩展(此处可以与开放-封闭原则联系起来)。
// last update : 2015/5/28
// sfg1991@163.com
// 2015/5/28
- 单一职责原则+开放-封闭原则+依赖倒转原则+里氏代换原则【设计模式】【学习总结】
- 【有毒的设计模式】单一指责原则、开放-封闭原则、依赖倒转原则、里氏代换原则
- 设计模式六大原则-单一职责原则、开放封闭原则、依赖倒转原则、里氏代换原则、迪米特法则、合成/聚合复用原则
- 大话设计模式学习笔记(3,4,5)----单一职责,开放-封闭,依赖倒转,里氏代换原则
- 设计模式--工厂模式.策略模式.单一职责原则.开放封闭原则.依赖倒转原则
- 设计模式之单一职责原则、开放封闭原则、依赖倒转原则
- 【设计模式】单一职责原则、开放封闭原则、依赖倒转原则
- 设计模式--单一职责原则,开放封闭原则,依赖倒转原则
- 大话设计模式之单一职责原则 开放封闭原则 依赖倒转
- 开闭、里氏代换、依赖倒转、单一职责、迪米特五种原则
- 大话设计模式读书笔记(三) 单一职责原则和开放-封闭原则和依赖倒转原则
- 【设计模式】三、单一职责原则,开发-封闭原则,依赖倒转原则
- 设计模式之单一职责原则、开发-封闭原则和依赖倒转原则
- 设计模式 --3.单一职责原则,4.开发-封闭原则,5依赖倒转原则
- 设计模式 依赖倒转原则 & 里氏代换原则
- 大话设计模式05----依赖倒转原则 & 里氏代换原则
- 设计模式之依赖倒转原则---里氏代换原则
- 2016-12-28 单一职责原则+依赖倒转原则+里氏替换原则+开放封闭原则+接口隔离原则
- 获取当前外网IP
- 黑马程序员——c语言概述
- Dynamics CRM2015 Custom Code Validation Tool工具的使用
- spring mvc 注解单元测试
- 如何利用dex2jar反编译APK
- 单一职责原则+开放-封闭原则+依赖倒转原则+里氏代换原则【设计模式】【学习总结】
- matlab 常用设置
- Android ViewPager和Fragment实现顶部导航界面滑动效果
- Java通过DES实现加密和解密
- Win7下使用DbgPrint
- 安装VS2010sp1显示兼容性问题
- C#实现系统关机、重启、注销等操作
- hadoop1.0.1+hbase0.94.14+nutch2.3爬虫
- 好用的抓取dump的工具-ProcDump