`
飞翔吧
  • 浏览: 2162 次
社区版块
存档分类
最新评论

面向对象设计原则

阅读更多

SRP  单一职责

就一个类而言,应该仅有一个引起它变化的原因

OCP 开闭原则

软件的实体(类,模块,函数等)对扩张开放,对修改关闭

LSP Lislov 替换原则

子类型必须可以替换掉他们的基本类型

DIP 依赖倒置原则

抽象不应该依赖于细节。细节应该依赖于抽象

ISP 接口隔离原则

不应该强迫客户依赖于他们不使用的方法。接口属于客户,不属于它所在的类层次结构。

REP 重用发布等价原则

重用的粒度就是发布的粒度

CCP 共同封闭原则

包中所有类对于同一性质的变化应该是共同封闭的。一个变化若对另一个包产生影响,则将对该包中的

所有类产生影响,而对于其他包不造成影响。

CRP 共同重用原则

一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么要重用包中的所有类。

ADP 无环依赖原则

在包中的依赖关系图中,不允许存在环。

SDT 稳定依赖原则

朝着稳定的方向进行依赖

SAP 稳定抽象原则

包的抽象程度应该和其稳定程度一致

 

面向对象设计原则的愿景就是,系统可扩展,可维护,可测。最终归于开闭原则,因此我们设计的时候要尽量抽象通用,封装变化。

不好的设计表现

  • 僵化性:(Rigidity):设计难以改变
  • 脆弱性(Fragility):设计容易被破坏
  • 牢固性(Immobility):设计难以复用
  • 耦合性(Viscosity):模块间过分耦合
  • 不必要的复杂性(Needless complexity):过度设计
  • 不必要的重复(Needless Repetition):不必要的重复
  • 晦涩性(Opacity):混乱的表达

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics