架构风格与模式58 条

SOLID 五原则

面向对象设计的五条原则:单一职责、开闭、里氏替换、接口隔离与依赖倒置;用于指导类与模块的职责划分和依赖方向。

原则

原则英文一句话含义
单一职责SRP一个模块只有一个被修改的理由
开闭原则OCP对扩展开放,对修改关闭
里氏替换LSP子类型可替换父类型而不破坏正确性
接口隔离ISP客户端不应被迫依赖不使用的方法
依赖倒置DIP高层与低层都依赖抽象,细节依赖抽象
五条原则的共同目标是控制变化影响面,脱离具体变化点机械套用会制造额外抽象层。

易错点

  • 把 SRP 理解为“一个类只做一件事”,忽略“一个变化原因”的本意
  • 为满足 OCP 提前设计抽象,结果抽象与真实变化不匹配

数据来源与参考

  • Robert C. Martin《Agile Software Development: Principles, Patterns, and Practices》
  • Robert C. Martin《Clean Architecture》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌