面向对象软件开发六大原则

  网上流传比较广的面向对象软件开发的六大原则,有很多的博客记录供参考。在此大致记录其含义:

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

 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

 要点:软件开发、维护、升级的精髓,然而又是最模糊的理解点。围绕可扩展、可复用、可维护、弹性等出发点考虑。

原文地址:https://www.cnblogs.com/wpbxin/p/8833015.html