📐 六大设计原则
设计模式知识体系总览
设计模式是软件工程的「武功心法」——不只是背 23 种模式,而是理解为什么要用、什么场景用、在哪里用过。面试官最期待的回答是:「这个模式在 Spring 的 XXX 里有应用,原因是…」
一、知识体系总览
Section titled “一、知识体系总览”1.1 学习路径
Section titled “1.1 学习路径”第1阶段 设计原则 → SOLID、迪米特第2阶段 创建型模式 → 单例、工厂第3阶段 结构型模式 → 代理、装饰器第4阶段 行为型模式 → 策略、观察者1.2 核心知识点思维导图
Section titled “1.2 核心知识点思维导图” 设计模式 │ ┌───────────┬─────────────┴─────────────┐ ▼ ▼ ▼ ▼ 设计原则 创建型 结构型 行为型 │ │ │ │• SOLID • 单例 • 代理 • 策略• 单一职责 • 工厂 • 装饰器 • 观察者• 开闭原则 • 建造者 • 适配器 • 模板方法• 里氏替换 • 原型 • 外观 • 责任链1.3 面试重点总结
Section titled “1.3 面试重点总结”| 专题 | 考察频率 | 难度 | 核心能力 |
|---|---|---|---|
| 设计原则 | ★★★★☆ | 中 | 原则理解 |
| 创建型 | ★★★★★ | 中 | 单例工厂 |
| 结构型 | ★★★★☆ | 中 | 代理装饰 |
| 行为型 | ★★★★☆ | 中 | 策略观察 |
二、四大核心专题
Section titled “二、四大核心专题”🏭 创建型模式
🔧 结构型模式
🎭 行为型模式
三、面试难度分布
Section titled “三、面试难度分布”| 模式 | 频率 | 常问考点 |
|---|---|---|
| 单例模式 | ⭐⭐⭐⭐⭐ | DCL 双检锁、volatile 为什么必须、枚举单例 |
| 工厂模式 | ⭐⭐⭐⭐⭐ | 简单工厂 vs 工厂方法 vs 抽象工厂区别 |
| 代理模式 | ⭐⭐⭐⭐⭐ | JDK 动态代理 vs CGLIB,Spring AOP 用的哪种 |
| 策略模式 | ⭐⭐⭐⭐ | 消除 if-else,结合 Spring Bean 注入策略 |
| 观察者模式 | ⭐⭐⭐⭐ | Spring 事件机制、MQ 是不是观察者模式 |
| 模板方法 | ⭐⭐⭐⭐ | JdbcTemplate、AbstractXxx 抽象类 |
| 装饰器模式 | ⭐⭐⭐ | Java IO 流的设计 |
| 责任链模式 | ⭐⭐⭐⭐ | Spring Filter/Interceptor、Sentinel 插槽链 |
| 建造者模式 | ⭐⭐⭐ | Lombok @Builder、MyBatis SqlSession 构建 |