面向对象设计原则汇总

 

本文除了SOLID五个原则,还加了迪米特法则、组合/聚合复用原则。

即SOLID + LoD + CARP。

 


 

 1. 单一职责原则(SRP,Single Responsibility Principle)

一个类应该只有一个职责。(一个类应该只有一个引起其变化的原因)

 

2. 开闭原则(OCP,Open/Closed Principle)

对扩展开放,对修改关闭。(支持扩展,限制修改)

 

3. 里氏替换原则(LSP,Liskov Substitution Principle)

子类必须能替换父类;否则,不应设计为子类。

 

4. 接口隔离原则(ISP,Interface Segregation Principle)

将大的接口拆分为小的接口。(每个接口实现一个职责,方便组合)

 

5. 依赖倒置原则(DIP,Dependency Inversion Principle,或IoC,控制反转)

a. 高层模块不应该依赖低层模块,它们都应该依赖抽象;

b. 抽象不应依赖具体,具体应该依赖抽象。

 

6. 迪米特法则(LoD,Law of Demeter, 或者最少知识原则,LKP, Least Knowledge Principle)

一个对象应该尽可能少的了解其他对象。(松耦合)

 

7. 组合/聚合复用原则(CARP,Composition/Aggregation Reuse Principle)

优先使用组合/聚合,而非继承。

 

posted @ 2017-03-06 20:40  赫尔修斯  阅读(145)  评论(0编辑  收藏  举报