【转】面向对象设计的SOLID原则

面向对象设计的SOLID原则

http://www.cnblogs.com/shanyou/archive/2009/09/21/1570716.html

S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。

SRP The Single Responsibility Principle 单一责任原则
OCP The Open Closed Principle  开放封闭原则
LSP The Liskov Substitution Principle 里氏替换原则
DIP The Dependency Inversion Principle 依赖倒置原则
ISP The Interface Segregation Principle 接口分离原则

Steve Smith在5月份的微软TechED 2009上有个SOLIDify Your ASP.NET MVC的讲座, derick.baileySOLID Development Principles – In Motivational Pictures很好的解释了SOLID原则。

单一责任原则: 
当需要修改某个类的时候原因有且只有一个(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。 
 

开放封闭原则 
软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。这个原则是诸多面向对象编程原则中最抽象、最难理解的一个。

里氏替换原则 
当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系 
  
依赖倒置原则
1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象 
2. 抽象不应该依赖于细节,细节应该依赖于抽象 

接口分离原则 
不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。

这几条原则是非常基础而且重要的面向对象设计原则。正是由于这些原则的基础性,理解、融汇贯通这些原则需要不少的经验和知识的积累。上述的图片很好的注释了这几条原则。

时间: 2024-10-10 10:45:18

【转】面向对象设计的SOLID原则的相关文章

面向对象设计的SOLID原则

S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写. SRP The Single Responsibility Principle 单一责任原则 OCP The Open Closed Principle  开放封闭原则 LSP The Liskov Substitution Principle 里氏替换原则 DIP The Dependency Inversion Principle 依赖倒置原则 ISP The

# 61条面向对象设计的经验原则-《OOD启思录》Arthur J.Riel

61条面向对象设计的经验原则-<OOD启思录>Arthur J.Riel 原文 http://blog.csdn.net/cpluser/article/details/129291 61条面向对象设计的经验原则 摘抄自<OOD 启思录>--Arthur J.Riel 著 鲍志云 译 "你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚.但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起." ----------Arthur J.Riel (1)

面向对象的设计的SOLID原则

S.O.L.I.D是面向对象设计和编程中5个重要编码规则的首字母的缩写. - SRP The Single Responsibility Principle 单一责任原则 当需要修改某个类的时候原因有且只有一个.换句话说就是让一个类只做一种类型的责任,当这个类需要承担其他类型的责任的时候,就需要分解这个类. - OCP The Open Closed Principle 开放封闭原则 软件实体应该是可扩展,而不可修改的.也就是说,对扩展是开放的,而对修改是封闭的.这个原则是诸多面向对象编程中最抽

面向对象设计的五原则-转

http://www.uml.org.cn/mxdx/201106293.asp原文地址 如何向妻子解释OOD   发布于2011-06-29   前言 此文译自CodeProject上<How I explained OOD to my wife>一文,该文章在Top Articles上排名第3,读了之后觉得非常好,就翻译出来,供不想读英文的同学参考学习. 作者(Shubho)的妻子(Farhana)打算重新做一名软件工程师(她本来是,后来因为他们孩子出生放弃了),于是作者就试图根据自己在软

Java面向对象设计的六大原则

这是设计模式系列开篇的第一篇文章.也是我学习设计模式过程中的总结.这篇文章主要讲的是面向对象设计中,我们应该遵循的六大原则.只有掌握了这些原则,我们才能更好的理解设计模式.我们接下来要介绍以下6个内容. 单一职责原则——SRP 开闭原则——OCP 里式替换原则——LSP 依赖倒置原则——DIP 接口隔离原则——ISP 迪米特原则——LOD 单一职责原则 单一职责原则的定义是就一个类而言,应该仅有一个引起他变化的原因.也就是说一个类应该只负责一件事情.如果一个类负责了方法M1,方法M2两个不同的事

面向对象设计的七大原则

在上一篇里我们谈了谈为何设计模式,那接下来我们再浅谈一下在面向对象设计中我们常常要遵循的一些原则. 这些原则是经过无数的前人总结出来的经验的结晶. 仅仅有遵循这些原则.你才有可能涉及出优秀的代码.今天我们要谈的原则有七大原则,即:单一职责.里氏替换.迪米特法则,依赖倒转,接口隔离,合成/聚合原则.开放-封闭 . 1.   开闭原则 定义:软件实体应当对扩展开放,对改动关闭.这句话说得有点专业.更通俗一点讲,也就是:软件系统中包括的各种组件,比如模块(Modules).类(Classes)以及功能

61条面向对象设计的经验原则

你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚.但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起. -----Arthur J.Riel (1)所有数据都应该隐藏在所在的类的内部.p13 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者.p15 (3)尽量减少类的协议中的消息.p16 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝).相等性判断.正确输出内容.从ASCII描述解析等等]. p16 (5)不要把实现细节(例如放置共用代码的私

Delphi面向对象设计的经验原则(61条)

(1)所有数据都应该隐藏在所在的类的内部. (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者. (3)尽量减少类的协议中的消息. (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝).相等性判断.正确输出内容.从ASCII描述解析等等]. (5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中. 如果类的两个方法有一段公共代码,那么就可以创建一个防止这些公共代码的私有函数. (6)不要以用户无法使用或不感兴趣的东西扰乱类的公有接口. (7)类之间应该

类设计的SOLID原则

SOLID原则是面向对象范式的核心 单一职责原则(Single Responsible Principle, SRP):对于一个类,应该仅有一个引起它变化的原因.其基础是内聚,表示类完成单一功能的程度. 开放—封闭原则(Open Closed Principle,OCP):类应该对扩展开放,对修改关闭.是SOLID原则中最重要的一个.OCP 的一个原则就是将类之间的耦合到抽象级别. Liskov替换原则(Liskov Substitution Principle,LSP):子类型应该能够替换它们