Skip to content

Latest commit

 

History

History
54 lines (26 loc) · 1.75 KB

面向对象六大原则.md

File metadata and controls

54 lines (26 loc) · 1.75 KB

面向对象六大原则

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

一个类而言,应该仅有一个引起它变化的原因。一个类中应该是一组相关性很高的函数、数据的封装。

2. 开闭原则 OCP

一个类应该对外扩展开放,对修改关闭。

3. 里氏替换原则 LSP

子类型能够替换掉它们的父类型。

所有引用基类的地方必须能透明地使用其子类的对象。

4. 依赖倒置原则 DIP

要依赖于抽象,不要依赖于具体类,要做到依赖倒置,应该做到:

  • 高层模块不应该依赖底层模块,二者都应该依赖于抽象。

  • 抽象不应该依赖于具体实现,具体实现应该依赖于抽象。

抽象是指抽象类或者接口,二者都不可以直接实例化,细节就是实现类,实现接口或继承抽象类而产生的类就是细节。

5. 接口隔离原则 ISP

不应该强迫客户依赖于他们不用的方法。

类间的依赖关系应该建立在最小的接口上,接口分离原则将系统解开耦合,从而更容易重构,更改和重新部署。

6. 最少知识原则 (迪米特原则)LKP

只和你的朋友谈话。

一个类应该对其他对象有最少的了解。

一个类应该对自己需要耦合或调用的类知道得最少。类的内部如何实现与调用者或者依赖者无关。

7. 其他原则

  • 面向接口编程

  • 优先使用组合,而非继承

  • 一个类需要的数据应该隐藏在类的内部

  • 类之间应该零耦合,或者只有传导耦合,换句话说,类之间要么没关系,要么只使用另一个类的接口提供的操作

  • 在水平方向上尽可能统一地分布系统功能