2008-03-18
OO的基本原则
转载
Single Choice Principle(SCP)
所有的判断只在一处进行.违反此原则的典型情况是不同的方法中充斥着相同的if ... else ...或类似的语句.
Linguistic Modular Units
Few Interfaces
Small Interfaces
Explicit Interfaces
Behavioral Completeness
一个完整的类必须包含完整的方法.如果类没有完成它的职责,或者没有完成其父类需要完成的工作,那么它就是不完整的类.
Law Of Demeter
只与直接协作的类交互.
The Principle of Essential Representation(PER)
类应该包含而且只包含其本质的定义和表现,与SRP比较接近.
Single Responsibility Principle(SRP)
一个类只承担一项职责,只能有一个发生变化的理由,那就是它的职责变化了.
Open-Colse Principle(OCP)
类应该对扩展是开放的,对修改是封闭的.
Liskov Substitution (LSP)
子类必须可以替换父类.
Dependency-Inversion Principles(DIP)
高层应该不依赖于低层,双方都应该依赖于抽象.抽象不依赖于细节,细节应该依赖于抽象.
Interface Segregation Principles(ISP)
接口属于客户程序.
---------------------------------
Reuse Release Equivalence Principle(REP)
重用的粒度等于发布的粒度.
Common Reuse Principle(CRP)
包中的类应该是共同重用的.
Common Closure Principle(CCP)
包中的类对同一类变化共同封闭的,一个类发生变化,可能所有的类都要发生变化.
---------------------------------
Acyclic Dependencies Principle(ADP)
包之间的依赖结构不应该存在环依赖.
Stable Dependencies Principle (SDP)
包应该依赖于比它更稳定的包.
Stable Abstractions Principle(SAP)
包的稳定程度与抽象程度成正比,越抽象的包越稳定.
---------------------------------
开发时应该避免的bad design smell:
僵化(Rigidity) 一处变化会影响系统中的很多地方.
脆弱(Fragility) 一处变化会影响系统中不应该被影响的地方.
牢固(Immobility) 很难被重用.
还有一些原则可能被遗漏掉,如果你发现了,请及时提醒我.
Single Choice Principle(SCP)
所有的判断只在一处进行.违反此原则的典型情况是不同的方法中充斥着相同的if ... else ...或类似的语句.
Linguistic Modular Units
Few Interfaces
Small Interfaces
Explicit Interfaces
Behavioral Completeness
一个完整的类必须包含完整的方法.如果类没有完成它的职责,或者没有完成其父类需要完成的工作,那么它就是不完整的类.
Law Of Demeter
只与直接协作的类交互.
The Principle of Essential Representation(PER)
类应该包含而且只包含其本质的定义和表现,与SRP比较接近.
Single Responsibility Principle(SRP)
一个类只承担一项职责,只能有一个发生变化的理由,那就是它的职责变化了.
Open-Colse Principle(OCP)
类应该对扩展是开放的,对修改是封闭的.
Liskov Substitution (LSP)
子类必须可以替换父类.
Dependency-Inversion Principles(DIP)
高层应该不依赖于低层,双方都应该依赖于抽象.抽象不依赖于细节,细节应该依赖于抽象.
Interface Segregation Principles(ISP)
接口属于客户程序.
---------------------------------
Reuse Release Equivalence Principle(REP)
重用的粒度等于发布的粒度.
Common Reuse Principle(CRP)
包中的类应该是共同重用的.
Common Closure Principle(CCP)
包中的类对同一类变化共同封闭的,一个类发生变化,可能所有的类都要发生变化.
---------------------------------
Acyclic Dependencies Principle(ADP)
包之间的依赖结构不应该存在环依赖.
Stable Dependencies Principle (SDP)
包应该依赖于比它更稳定的包.
Stable Abstractions Principle(SAP)
包的稳定程度与抽象程度成正比,越抽象的包越稳定.
---------------------------------
开发时应该避免的bad design smell:
僵化(Rigidity) 一处变化会影响系统中的很多地方.
脆弱(Fragility) 一处变化会影响系统中不应该被影响的地方.
牢固(Immobility) 很难被重用.
还有一些原则可能被遗漏掉,如果你发现了,请及时提醒我.
发表评论
- 浏览: 6401 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
最新评论
-
OSGi规范
你可是跟上了blueDavy的脚步,呵呵
-- by yeshucheng -
到taobao的第三天
多少米,是不能告诉你的
-- by yefeng -
到taobao的第三天
引用我们要八卦。。。。米多否
-- by netfishx -
到taobao的第三天
引用我们要八卦。。。。
-- by dspiritcat -
到taobao的第三天
我们要八卦。。。。
-- by 抛出异常的爱






评论排行榜