设计模式——面向对象设计的原则(二)
2013-12-13 22:05
260 查看
在设计模式——面向对象设计的原则(一)中总结了里氏代换原则原则、合成\聚合原则、迪米特原则这三个原则,接下来总结单一职责原则、开放封闭原则、依赖转换原则。
单一职责原则:
解释:就一个类而言只专注做一件事,应该仅有一个引起它变化的原因。
所谓职责就是说对象能够承担的责任,对象的职责是要为其他的对象提供调用,从而形成对象之间的协作,由此产生耦合关系,所以职责越少耦合就越低,软件才能容易维护,易复用。
例如(如图):电脑的主机内部cpu、内存条、硬盘等等各个部件就很好的做到了单一职责原则,当内存条坏了的时候,换个新的内存条就行了,不需要去更换硬盘。
开放封闭原则:
解释:是说软件实体(类、模式、函数等等)应该可以扩展,但是不可修改。
对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况;对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。
例如:如果梦想是已经设计完成的一个类,那么梦想可以去沿着原来方向去扩展让梦想更具体、更伟大,但是不能去改变它或者放弃它。
依赖倒转原则:
解释:1.高层模块不应该依赖底层模块,两个都应该依赖抽象。2.抽象不应该依赖细节,细节应该依赖抽象。
简单的说就是要对抽象或接口进行编程,而不是对实现进行编程。这样就降低了客户与实现模式的耦合。
例如:电脑中的cpu、内存条都是在针对接口设计,如果针对实现去设计,内存条用到具体的那个品牌就要使用对应的品牌主板,那么换内存条时还要把主板也换了,这样主板和内存的耦合也太高了。
以上就是对设计模式中的六大原则的理解,从这六种原则中,有一个共同的特点就是为了让耦合降低,提高软件的可维护性,灵活性。
同时也发现了一个道理,这些原则和世间万物都是遵循着某种类似的规律,而且谁先把握了这些规律,就会最早的变成强者。
单一职责原则:
解释:就一个类而言只专注做一件事,应该仅有一个引起它变化的原因。
所谓职责就是说对象能够承担的责任,对象的职责是要为其他的对象提供调用,从而形成对象之间的协作,由此产生耦合关系,所以职责越少耦合就越低,软件才能容易维护,易复用。
例如(如图):电脑的主机内部cpu、内存条、硬盘等等各个部件就很好的做到了单一职责原则,当内存条坏了的时候,换个新的内存条就行了,不需要去更换硬盘。
开放封闭原则:
解释:是说软件实体(类、模式、函数等等)应该可以扩展,但是不可修改。
对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况;对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。
例如:如果梦想是已经设计完成的一个类,那么梦想可以去沿着原来方向去扩展让梦想更具体、更伟大,但是不能去改变它或者放弃它。
依赖倒转原则:
解释:1.高层模块不应该依赖底层模块,两个都应该依赖抽象。2.抽象不应该依赖细节,细节应该依赖抽象。
简单的说就是要对抽象或接口进行编程,而不是对实现进行编程。这样就降低了客户与实现模式的耦合。
例如:电脑中的cpu、内存条都是在针对接口设计,如果针对实现去设计,内存条用到具体的那个品牌就要使用对应的品牌主板,那么换内存条时还要把主板也换了,这样主板和内存的耦合也太高了。
以上就是对设计模式中的六大原则的理解,从这六种原则中,有一个共同的特点就是为了让耦合降低,提高软件的可维护性,灵活性。
同时也发现了一个道理,这些原则和世间万物都是遵循着某种类似的规律,而且谁先把握了这些规律,就会最早的变成强者。
相关文章推荐
- 设计模式02 面向对象设计原则
- 面向对象设计原则(1)——学习使用设计模式
- 设计模式学习笔记(一)——面向对象设计模式与原则
- 面向对象设计原则(1)——学习使用设计模式
- 设计模式学习笔记(一)——面向对象设计模式与原则
- 设计模式学习(一):设计模式概述及面向对象设计原则
- 面向对象设计原则及设计模式
- C#面向对象设计模式纵横谈(1):面向对象设计模式与原则
- 面向对象设计模式学习(一):面向对象设计模式与原则
- 设计模式学习笔记-面向对象设计原则
- C#面向对象设计模式纵横谈——1.面向对象设计模式与原则
- 设计模式基础——面向对象设计原则(二)
- (Boolan)C++设计模式 <一> ——设计模式简介以及面向对象设计原则
- 记录一下----关于设计模式和面向对象设计原则
- 设计模式前篇——常见的面向对象设计原则
- 笔记:设计模式(1)-面向对象设计模式与原则
- C#设计模式前奏-面向对象设计原则
- 设计模式2 面向对象设计原则
- C#面向对象设计模式纵横谈(1):面向对象设计模式与原则
- C++ 设计模式2 (面向对象设计原则)