【全网最全】23种设计模式思维导图详解 | 含React/Vue/Spring实战案例
【全网最全】23种设计模式思维导图详解 | 含React/Vue/Spring实战案例
导图概述
本文通过高清思维导图系统梳理了23种设计模式,分为创建型、结构型、行为型三大类,并标注了各模式在主流框架(如React、Vue、Spring)中的典型应用场景。无论是面试复习还是日常开发,这张导图都能帮你快速建立知识关联。
核心内容详解
1. 创建型模式(5种)
核心思想:解耦对象的实例化过程。
- 工厂方法模式
- 定义:子类决定实例化哪个类(如
DatabaseFactory
生成MySQL/Oracle连接)。 - 实战:React的
createElement()
根据组件类型动态创建元素。
- 定义:子类决定实例化哪个类(如
- 单例模式
- 定义:确保全局唯一实例(如Redux的
Store
)。 - 线程安全:双重检查锁、静态内部类实现。
- 定义:确保全局唯一实例(如Redux的
2. 结构型模式(7种)
核心思想:通过组合构建灵活结构。
- 适配器模式
- 定义:转换接口兼容性(如Axios统一封装
XMLHttpRequest
和Fetch
)。 - VS代理模式:适配器解决接口差异,代理控制访问。
- 定义:转换接口兼容性(如Axios统一封装
- 装饰模式
- 定义:动态扩展功能(如Spring Security的
HttpSecurity
链式配置)。
- 定义:动态扩展功能(如Spring Security的
3. 行为型模式(11种)
核心思想:优化对象间通信。
- 观察者模式
- 定义:状态变更自动通知(如Vue的响应式系统)。
- 推模型 vs 拉模型:数据推送效率更高。
- 策略模式
- 定义:封装可互换算法(如React Router的
<BrowserRouter>
和<HashRouter>
切换)。
- 定义:封装可互换算法(如React Router的
🔹 框架关联:
React
:工厂方法、组合模式(组件树)、高阶组件(代理模式)Vue 3
:代理模式(Proxy
实现响应式)、观察者模式(依赖追踪)
实战代码片段
// 单例模式双重检查锁实现
public class Singleton { private static volatile Singleton instance; public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; }
}
// Vue3的代理模式实现响应式
const data = { count: 0 };
const proxy = new Proxy(data, { set(target, key, value) { console.log(`数据变化: ${key}=${value}`); target[key] = value; return true; }
});