创建型模式(5 种)
核心思想:分离对象创建与使用,屏蔽实例化细节,降低耦合
1.单例模式 (Singleton)
保证类全局仅有一个实例,提供统一访问入口;适合全局唯一资源(配置管理器、连接池)。
2. 工厂方法模式 (Factory Method)
定义创建对象的统一接口,由子类决定实例化哪一个产品;单一产品等级结构解耦。
3.抽象工厂模式(Abstract Factory Pattern)
定义一套工厂接口,可以创建一组相互配套、关联的多种产品,工厂子类一次性产出整套系列产品。
4.建造者模式 (Builder)
分步构建复杂对象,分离构建步骤与成品表示;适合属性多、构造流程复杂的对象(订单、复杂 DTO)。
5. 原型模式 (Prototype)
基于已有对象拷贝生成新实例,无需重新 new;适合创建成本高、重复对象场景。
结构型模式(7 种)
核心思想:组合 / 改造类与对象,搭建灵活的整体结构,优先组合而非继承
1.适配器模式(Adapter Pattern)
转换不兼容接口,让两类无法协作的对象正常交互;分类适配器(继承)、对象适配器(组合)。
2.桥接模式(Bridge Pattern)
拆分「抽象层」与「实现层」,两层独立扩展;解决多维度类爆炸问题(如图形 + 颜色)。
3.组合模式(Composite Pattern)
树形 “整体 – 部分” 结构,客户端统一操作单个对象与容器对象;菜单、文件目录经典场景。
4.装饰器模式(Decorator Pattern)
动态给对象叠加额外功能,替代静态子类扩展;IO 流、权限叠加场景常用
5.外观模式(Facade Pattern)
给复杂子系统提供统一高层入口,简化调用;屏蔽底层多组件复杂逻辑。
6.享元模式(Flyweight Pattern)
共享复用大量细粒度对象,减少内存开销;文字字符、缓存池场景。
7.代理模式(Proxy Pattern)
提供中介代理对象,控制对真实目标的访问;远程代理、静态 / 动态代理、AOP 底层基础。
行为型模式(11 种)
核心思想:分配对象职责、管理运行时交互流程,处理算法与协作逻辑
1.模板方法模式(Template Method Pattern)
父类固定算法骨架,可变步骤交由子类实现;复用通用流程,仅扩展差异化逻辑。
2.策略模式(Strategy Pattern)
封装一系列可互换算法,运行时动态切换;消除大量 if-else 分支判断。
3.命令模式(Command Pattern)
将请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化。
4.责任链模式(Chain of Responsibility Pattern)
请求沿处理链依次传递,每个节点自主决定处理 / 转发;日志分级、权限校验、拦截器。
5.状态模式(State Pattern)
对象行为随内部状态自动切换,消除大量状态分支;订单状态、游戏角色状态。
6.观察者模式(Observer Pattern)
定义对象间的一种一对多的依赖关系,以便当一个对象状态改变时,所有依赖于它的对象都得到通知并自动刷新, 消息推送、事件监听、MQ 消费。 。
7.中介者模式(Mediator Pattern)
引入统一中介隔离多对象直接交互,解除多方耦合;聊天室、组件联动。
8.迭代器模式(Iterator Pattern)
统一遍历聚合容器元素,不暴露容器内部存储结构;集合遍历工具。
9.访问者模式(Visitor Pattern)
将数据结构与操作分离,新增操作不修改原有数据类;复杂数据结构多维度统计。
10.备忘录模式(Memento Pattern)
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。支持回滚;编辑器撤销、游戏存档。
11.解释器模式(Interpreter Pattern)
定义文法规则与解释器,解析自定义语言 / 表达式;正则、表达式计算器(使用最少)。


