Skip to content

Java 设计模式概述 ​

设计模式不是“背八股”📚,而是工程实践里反复验证过的设计经验。
在 Spring、MyBatis、JDK 源码中,设计模式几乎无处不在。


1. 设计模式是什么 ​

设计模式是针对常见软件设计问题的一套通用解法。
GoF(四人帮)经典设计模式共 23 种,分为三大类:

  • 🏗️ 创建型(5):解决对象怎么创建
  • 🧩 结构型(7):解决类和对象怎么组合
  • 🔄 行为型(11):解决对象之间怎么协作

2. 23 种模式总览 ​

2.1 创建型模式(5) ​

模式英文名核心作用
单例模式Singleton保证一个类只有一个实例
工厂方法Factory Method把对象创建延迟到子类
抽象工厂Abstract Factory创建一族相关对象
建造者Builder复杂对象分步骤创建
原型模式Prototype通过拷贝快速创建对象

2.2 结构型模式(7) ​

模式英文名核心作用
适配器Adapter兼容不一致接口
装饰器Decorator动态增强对象功能
代理Proxy间接访问与附加控制
外观Facade对外提供统一入口
桥接Bridge抽象与实现解耦
组合Composite树形结构统一处理
享元Flyweight共享对象节省内存

2.3 行为型模式(11) ​

模式英文名核心作用
策略Strategy算法可替换
模板方法Template Method固定流程,扩展步骤
观察者Observer一对多通知
迭代器Iterator统一遍历集合
责任链Chain of Responsibility请求链式处理
命令Command请求封装成对象
备忘录Memento保存与恢复状态
状态State状态驱动行为变化
访问者Visitor结构稳定、操作可扩展
中介者Mediator集中对象交互逻辑
解释器Interpreter定义语法并解释执行

3. 学习路线图 ​

graph LR
    A["T0 高频必学<br/>单例/工厂/建造者/策略/模板/代理/观察者/责任链"] --> B["T1 常用进阶<br/>适配器/装饰器/外观/状态/备忘录"]
    B --> C["T2 面试加分<br/>原型/抽象工厂/桥接/组合/享元/迭代器/命令/中介者/访问者/解释器"]

4. 优先级建议 ​

  • 🚀 T0(先学):单例、工厂、建造者、策略、模板方法、代理、观察者、责任链
  • 🔧 T1(进阶):适配器、装饰器、外观、状态、备忘录
  • 🎯 T2(加分):原型、抽象工厂、桥接、组合、享元、迭代器、命令、中介者、访问者、解释器

5. 每篇笔记统一模板 ​

为保证可复用和可复习,后续每个模式按统一结构输出:

  1. 模式定义:一句话讲清本质
  2. 适用场景:真实业务案例
  3. Java 实现:可直接运行的示例代码
  4. 优缺点:何时用、何时别用
  5. 源码映射:JDK / Spring 对应应用点
  6. 面试考点:高频问法与回答框架

6. 常见误区 ​

  • ❌ 只背定义,不写代码
  • ❌ 见到问题就“硬套模式”
  • ❌ 忽略业务上下文,过度设计
  • ✅ 正确做法:先解决问题,再总结是否可抽象为模式

7. 开篇总结 ​

设计模式的核心目标只有四个词:复用、解耦、扩展、可维护。
真正有价值的学习方式,不是记住 23 个名字,而是知道“这个场景该用哪一个,为什么用”。


8. 下篇预告 ​

下一篇:单例模式(Singleton) 👇
会覆盖:懒汉/饿汉、双重检查锁、静态内部类、枚举单例,以及并发与反射破坏问题。