面向对象程序设计圣经:SOLID设计原则

面向对象程序设计圣经:SOLID设计原则

  • Single Responsibility Principle 单一职责
  • Open-Closed Principle 开闭原则
  • Liskov Substitution Principle 里氏替换原则
  • Interface Segregation Principle 接口分离原则
  • Dependency Inversion Principle 依赖倒置原则

遵循SOLID设计原则可以保证代码的低耦合和高内聚,统一团队理念,使代码稳定、灵活、健壮。

Single Responsibility Principle 单一职责

一个类只做单一的一种功能。

职责过多使代码难以复用和维护。

Open-Closed Principle 开闭原则

对扩展开放,对修改关闭。

要么继承,要么注入,不轻易修改已经写好的类。

  • 继承拓展:通过新建子类继承父类,改写方法
    • 优点:实现简单、直观
    • 缺点:改写父类方法,容易违背里氏替换原则
  • 构造拓展:新建其他功能实现类进行注入
    • 原则:基类不直接实现具体细节,细节由构造注入决定

Liskov Substitution Principle 里氏替换原则

子类可以替换父类,并且替换后系统结果一致。

两个基本要求:

  • 输入输出一致,继承的方法一律不变,有特殊需求另起一个方法实现
  • 子类不产生副作用

Law of Demeter 迪米特法则

目的在于降低类之间的耦合。由于每个对象之间尽量减少对其他类的了解,容易使得系统之间的功能模块独立,相互之间不存在或很少有依赖关系。

Interface Segregation Principle 接口分离原则

接口实现方不应该被迫实现用不上的方法。

单个接口的方法数尽可能少。

Dependency Inversion Principle 依赖倒置原则

高阶模块不应该依赖缔结模块,两者应该都依赖于抽象。

抽象不依赖于细节,而细节应该依赖于抽象。

具体体现在:

  • 不要在一个类里面new另一个类,而是应该注入使用。
  • 注入时应该用接口约束参数,而不是类约束参数。
updatedupdated2024-11-102024-11-10