23种设计模式真实业务场景实战
📚 共计 30 章节
01
单例模式 · 全局配置管理器
确保一个类只有一个实例,提供全局访问点。业务:日志记录器、数据库连接池、Spring Bean 默认作用域。
创建型
常用
02
工厂方法模式 · 日志记录器工厂
定义创建对象的接口,子类决定实例化哪个类。业务:不同数据库驱动、日志框架适配。
创建型
多态
03
抽象工厂模式 · 跨平台UI组件库
创建一系列相关对象的接口,不指定具体类。业务:Windows/Mac/Linux 下按钮、文本框等UI族。
创建型
产品族
04
建造者模式 · 复杂SQL查询构建器
将复杂对象的构建与表示分离。业务:多表Join/Where/Order By 的SQL构建;披萨多层配料。
创建型
链式
05
原型模式 · 流程模板复制
通过拷贝原型创建新对象。业务:OA审批模板复制、游戏角色(装备/技能/属性)克隆。
创建型
克隆
06
适配器模式 · 遗留系统接口适配
将一个接口转换成客户希望的另一个接口。业务:统一支付宝/微信支付SDK;老日志接口适配。
结构型
兼容
07
桥接模式 · 消息推送系统
抽象与实现分离,独立变化。业务:紧急/普通消息 × 短信/App/邮件推送自由组合。
结构型
组合
08
组合模式 · 公司组织架构树
树形结构表示“部分-整体”层次。业务:部门与子部门、员工管理;文件系统文件夹与文件。
结构型
树形
09
装饰器模式 · 数据加密与压缩流
动态给对象添加额外职责。业务:BufferedInputStream;短信发送添加签名/加密/日志。
结构型
增强
10
外观模式 · 微服务网关
为子系统提供统一接口。业务:下单流程整合库存/支付/物流,OrderFacade 简化调用。
结构型
统一
11
享元模式 · 围棋游戏棋子
共享技术支持大量细粒度对象。业务:文本编辑器字符共享、游戏子弹/粒子效果。
结构型
共享
12
代理模式 · AOP实现
为其他对象提供代理以控制访问。业务:Spring AOP (JDK/CGLIB)、远程代理、虚拟代理、保护代理。
结构型
控制
13
责任链模式 · 审批流程
多个对象处理请求,避免耦合。业务:OA请假审批(组长→经理→总监→CEO);Filter链。
行为型
链式
14
命令模式 · 撤销与重做
将请求封装为对象,支持参数化。业务:文本编辑器 Ctrl+Z/Y;任务队列、线程池。
行为型
命令
15
解释器模式 · 数学表达式计算器
定义语言文法并解释。业务:SQL解析器、正则表达式、公式计算 "3+5*2"。
行为型
解析
16
迭代器模式 · 统一集合遍历
顺序访问聚合对象元素,不暴露内部表示。业务:Java Iterator;正序/倒序遍历列表。
行为型
遍历
17
中介者模式 · 聊天室
中介对象封装一系列交互。业务:聊天室服务器作为中介;MVC中Controller中介Model/View。
行为型
解耦
18
备忘录模式 · 游戏存档
捕获并保存对象内部状态。业务:游戏存档/读档;数据库事务回滚(Rollback)。
行为型
状态
19
观察者模式 · 事件驱动架构
一对多依赖,状态变化自动通知。业务:ApplicationListener、Kafka发布-订阅、双向绑定。
行为型
事件
20
状态模式 · 订单状态机
内部状态改变行为。业务:电商订单状态(待支付→已支付→已发货→已完成);TCP连接状态。
行为型
状态
21
策略模式 · 支付方式选择
定义算法族并封装可互换。业务:支付宝/微信/银联支付;ZIP/GZIP/RAR压缩算法。
行为型
策略
22
模板方法模式 · 数据迁移框架
定义算法骨架,子类实现步骤。业务:JdbcTemplate;数据迁移(连接→读取→转换→写入)。
行为型
骨架
23
访问者模式 · 编译器语法树遍历
不改变元素类定义新操作。业务:Java AST遍历;不同部门(财务/人事/技术)报表统计。
行为型
遍历
24
设计模式总结与对比
创建型、结构型、行为型模式核心区别与适用场景。
总结
对比
25
设计模式在Spring框架中的应用
IoC(单例/工厂)、AOP(代理)、MVC(观察者/中介者)、Template(模板方法)。
Spring
源码
26
设计模式在MyBatis中的应用
Builder(SqlSessionFactoryBuilder)、工厂、代理(MapperProxy)、模板(BaseExecutor)。
MyBatis
源码
27
设计模式在JDK源码中的应用
Runtime(单例)、Calendar(工厂)、InputStream(装饰器)、Collections(迭代器/适配器)。
JDK
源码
28
如何选择设计模式
根据业务场景、变化点、复用性、可维护性综合评估。
方法论
决策
29
设计模式与反模式
常见误用案例:滥用单例导致测试困难、滥用工厂导致类爆炸。
反模式
避坑
30
综合实战 · 重构电商订单系统
涵盖单例、工厂、策略、状态、观察者、代理等模式,重构遗留系统。
实战
重构