Introduction
SOLID
是五个面向对象设计原则的首字母缩写,分别是:
- Single Responsibility Principle (SRP) - 单一职责原则
- Open/Closed Principle (OCP) - 开闭原则
- Liskov Substitution Principle (LSP) - 里氏替换原则
- Interface Segregation Principle (ISP) - 接口隔离原则
- Dependency Inversion Principle (DIP) - 依赖倒置原则
Single Responsibility Principle (SRP)
单一职责原则是指一个类应该只有一个引起它变化的原因。换句话说,一个类应该只有一个职责。这不意味着一个类只能有一个功能 - 这是不准确的说法。确切的说,一个类或者模块应该对且仅对一类行为主体负责!
Open/Closed Principle (OCP)
开闭原则是指一个软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。这意味着一个实体应该通过扩展来实现新的功能,而不是通过修改已有的代码来实现。
这通常通过使用抽象类和接口来实现。抽象类和接口定义了一组规范,具体的实现类来实现这些规范。如果将来要添加新的功能,只需要添加新的实现类,而不需要修改已有的代码。
Liskov Substitution Principle (LSP)
里氏替换原则是指一个软件实体(类、模块、函数等)应该可以被它的子类替换,而不影响程序的正确性。这意味着一个子类应该可以替换它的父类,而不需要修改父类的代码。
Interface Segregation Principle (ISP)
接口隔离原则是指一个类对另一个类的依赖应该建立在最小的接口上。换句话说,一个类不应该依赖它不需要的接口。
Dependency Inversion Principle (DIP)
依赖倒置原则是指高层模块不应该依赖于低层模块,两者都应该依赖于抽象。换句话说,模块之间的依赖关系应该是通过抽象发生的,而不是通过具体实现发生的。