SOLID 是面向对象编程中的一组五个设计原则,这些原则旨在帮助开发者创建更灵活、可维护和可扩展的软件系统。它们最初由 Robert C. Martin 提出,并在 2000 年左右被广泛接受。每个字母代表一个不同的原则:
- 单一职责原则 (Single Responsibility Principle, SRP)
- 开闭原则 (Open-Closed Principle, OCP)
- 里氏替换原则 (Liskov Substitution Principle, LSP)
- 接口隔离原则 (Interface Segregation Principle, ISP)
- 依赖反转原则 (Dependency Inversion Principle, DIP)
下面我们将逐一详细讲解每个原则,并通过 C++ 示例来说明如何应用这些原则。
1. 单一职责原则 (SRP)
定义: 一个类应该只有一个引起它变化的原因,即一个类只负责一项功能或职责。
解释: 如果一个类承担了太多的责任,那么当需求发生变化时,这个类可能会因为多个原因而需要修改,这样会增加代码的复杂性和维护难度。因此,我们应该将不同的职责分配给不同的类。
示例:
// 错误示例:违反了单一职责原则
class User {
public:
void registerUser() {
// 注册用户逻辑
}
void sendEmail