design-pattern
design-pattern/solid/index.md
medium
design-pattern-solid-index
SOLID 五大面向对象设计原则 — 单一职责 / 开闭 / 里氏替换 / 接口隔离 / 依赖倒置。Use when 设计类与接口职责 / 评审面向对象结构 / 重构臃肿类时。
子项索引
| 子项 | 一句话 |
|---|---|
| solid-single-responsibility skill | 单一职责原则 SRP — 一个类只应有一个引起它变化的理由,混杂职责的类要按变化轴拆分 |
| solid-open-closed skill | 开闭原则 OCP — 对扩展开放对修改封闭,新增行为靠加实现类而非改 if-else 分支 |
| solid-liskov-substitution skill | 里氏替换原则 LSP — 子类必须能无声替换父类而不破坏调用方预期,不可收窄入参/放宽异常/抛 UnsupportedOperation |
| solid-interface-segregation skill | 接口隔离原则 ISP — 接口要小而专,客户端不应被迫依赖它用不到的方法,胖接口按角色拆成多个小接口 |
| solid-dependency-inversion skill | 依赖倒置原则 DIP — 高层模块与低层实现都依赖抽象,配合 Spring 构造器注入接口而非 new 具体类 |
SOLID · 五大原则索引
按你正在纠结的设计问题下钻:
| 你在做什么 | 进哪个 |
|---|---|
| 一个类越改越大、职责混杂 | single-responsibility |
| 加新功能要改大量旧代码 | open-closed |
| 子类继承父类后行为不一致、被迫加 if 判类型 | liskov-substitution |
| 接口太大,实现类被迫实现用不到的方法 | interface-segregation |
| 高层模块直接 new 低层实现、难以替换/测试 | dependency-inversion |