第3篇|六大设计原则详解:代码不烂,全靠这六根柱子(附Java实战)
“你可以写出跑得通的代码,
但能写出经得住需求风吹雨打的代码吗?”
—— 一个架构师的叹息
程序员写代码容易,写可扩展、可维护、可重用的代码才是高段位。
今天我们聊聊支撑优雅代码的六大基石——六大设计原则(SOLID),它们是面向对象编程的“防腐剂”,是你从写代码到做架构的第一把斧头。
一、什么是设计原则?为什么必须掌握?
设计原则是系统设计时要遵循的指导思想。就像建筑有抗震标准,写代码也有“不会烂”的原则:
| 原则 | 简称 | 作用 |
|---|---|---|
| 单一职责原则 | SRP | 一个类只负责一件事 |
| 开闭原则 | OCP | 对扩展开放,对修改关闭 |
| 里氏替换原则 | LSP | 子类可以替换父类 |
| 接口隔离原则 | ISP | 不强迫实现不需要的接口 |
| 依赖倒置原则 | DIP | 依赖于抽象,而非具体实现 |
| 合成复用原则 | CRP | 优先使用组合而不是继承 |
接下来我们逐条讲解,并配上通俗易懂的 Java 代码示例!
二、SRP 单一职责原则
定义:一个类应该只有一个引起它变化的原因。
✅ 反例:厨子还要送外卖?
public class OrderService {
public void createOrder() {
// 创建订单
}
public void printOrder() {
// 打印订单
}
public void sendEmail() {
// 发邮件
}
}
→ 改了打印,就影响下单逻辑,职责混乱!
✅ 正解:分家各干各的
public class OrderService {
public void createOrder() {
// 专注下单
}
}
public class Printer {
public void print(String content) {
// 专注打印
}
}
public class MailService {
public void sendEmail(String email) {
// 专注发邮件
}
}
好代码像一支精锐部队:各司其职,互不牵连。
三、OCP 开闭原则
定义:对扩展开放,对修改关闭。
✅ 反例:每次加个新付款方式都要改原代码
public class PaymentService {
public void pay(String type) {
if ("alipay".equals(type)) {
System.out.

最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



