网上流传比较广的面向对象软件开发的六大原则,有很多的博客记录供参考。在此大致记录其含义:
- 1、单一职责原则SRP:Single Responsibility Principle
- 2、里氏替换原则LSP:Liskov Substitution Principle
- 3、依赖倒置原则DIP:Dependence Inversion Principle
- 4、接口隔离原则ISP:Interface Segregation Principle
- 5、迪米特法则LoD:Law of Demeter
- 6、开闭原则OCP:Open Closed Principle
1、单一职责原则SRP:Single Responsibility Principle
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。
2、里氏替换原则LSP:Liskov Substitution Principle
定义:所有引用基类的地方必须能透明地使用其子类的对象。
要点:抽象化、面向接口编程
3、依赖倒置原则DIP:Dependence Inversion Principle
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
要点:面向接口编程,对变化的部分进行封装
4、接口隔离原则ISP:Interface Segregation Principle
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
要点:细化接口,接口尽量小,方法尽可能少,接口专业化
5、迪米特法则LoD:Law of Demeter
定义:一个对象应该对其他对象保持最少的了解。一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。又称“最少知道原则Least Knowledge Principle”。
要点:低耦合,高内聚。
6、开闭原则OCP:Open Closed Principle
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
要点:软件开发、维护、升级的精髓,然而又是最模糊的理解点。围绕可扩展、可复用、可维护、弹性等出发点考虑。