面向对象设计原则
2026/8/24大约 1 分钟
面向对象设计原则
设计模式的基石,六大原则(SOLID + 迪米特)指导我们写出可维护、可扩展的代码。
六大基本原则
| 原则 | 核心思想 |
|---|---|
| 单一职责原则(SRP) | 一个类应该仅有一个引起它变化的原因 |
| 开闭原则(OCP) | 对扩展开放,对修改关闭 |
| 里氏替换原则(LSP) | 子类型能够替换掉它们的父类型 |
| 依赖倒置原则(DIP) | 依赖抽象而非具体类,高层模块不依赖低层模块,二者都依赖抽象 |
| 接口隔离原则(ISP) | 不强迫客户依赖他们不用的方法 |
| 迪米特原则(LKP) | 只和你的朋友交谈(最少知识原则) |
依赖倒置的要点
- 高层模块不应该依赖底层模块,二者都应该依赖于抽象
- 抽象不应该依赖具体实现,具体实现应该依赖抽象
其他重要原则
- 面向接口编程
- 优先使用组合,而非继承
- 一个类需要的数据应该隐藏在类的内部
- 类之间应该零耦合或只有传导耦合(要么没关系,要么只使用另一个类接口提供的操作)
- 在水平方向上尽可能统一地分布系统功能