Skip to content

五大设计原则

SOLID 是面向对象编程中最重要的五大设计原则之一,由 Robert C. Martin(又称 Uncle Bob)提出,用于编写健壮、可维护、可扩展的程序结构。


🧱 SOLID 原则详解

缩写全称中文含义核心思想
SSingle Responsibility Principle单一职责原则一个类只负责一项功能,不要“多管闲事”
OOpen/Closed Principle开闭原则对扩展开放,对修改关闭
LLiskov Substitution Principle里氏替换原则子类对象能替代父类对象使用,不影响原功能
IInterface Segregation Principle接口隔离原则不要强迫实现类依赖它们不需要的接口
DDependency Inversion Principle依赖倒置原则高层模块不应依赖低层模块,二者都依赖抽象;抽象不依赖具体,实现依赖抽象

📌 举个简单例子帮助理解:

🔹 假设你要设计一个通知系统:

java
class Notification {
    void sendEmail(String msg) {
        // 发送邮件
    }

    void sendSMS(String msg) {
        // 发送短信
    }
}

这违反了单一职责原则(S),因为 Notification 同时负责多个通知渠道,应该拆分。


🔹 如果未来想支持微信通知,你可能会修改原来的类,这又违反了开闭原则(O)。

解决方法是:定义一个通知接口 Notifier,每个渠道实现它,然后通过扩展实现新渠道,而不是修改已有代码。


🔹 接口太大还会违反接口隔离原则(I),每个通知方式应该有精简的接口。


🔹 如果客户端直接依赖 EmailSenderSMSSender 这些具体类,那就违反了依赖倒置原则(D)。

应该让客户端依赖抽象 INotifier 接口,而具体实现注入进来(可用 Spring 等容器实现)。