SOLID五大原则(设计原则)

·

SRP(Single Responsibility Principle),单一职责原则

类的职责是站在其它类的角度来定义的,类的职责包含多个相关功能,该原则适合基础类,不适合基于基础类构建复杂的聚合类。

OCP(Open-Close Principle),开闭原则

对扩展开放,对修改封闭,不修改代码就可以增加新功能,提供者增加新的功能,但使用者不需要修改代码。

LSP(Liskov Substitution Principle),里氏替换原则

子类必须实现或继承父类所有的公有方法,子类每个方法的输入参数必须与父类一致,子类每个方法的输出必须不比父类少。

ISP(Interface Segregation Principle),接口隔离原则

ISP承认对象需要非内聚接口,然而ISP建议客户端不需要知道整个类,只需要知道有内聚接口的抽象父类即可。

打印一体机包括打印、复印、扫描、传真四个接口。某员工只用传真功能,那么只应该给他传真功能的接口,而不是整个打印一体机。

DIP(Dependency Inversion Principle),依赖反转原则

高层模块不应该直接依赖低层模块,两者都应该依赖抽象层。

抽象不能依赖细节,细节必须依赖抽象。

高层模块依赖低层模块指高层模块需要调用低层模块的方法。

高层模块依赖抽象层,指高层模块基于抽象层编程。

低层模块依赖抽象层,指低层模块继承或实现抽象层。

DIP的启发:

  1. 任何变量都不应该持有一个指向具体类的指针或应用。
  2. 任何类都不应该从具体类派生。
  3. 任何方法都不应该覆写它的任何基类中已经实现了的方法。

用处

  • SRP用于类的设计。
  • OCP是总的指导思想。
  • LSP用于指导类的继承设计。
  • ISP用于指导接口的设计。
  • DIP用于指导如何抽象。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注