当前位置: 首页 > news >正文

23 种设计模式实战速查表

项目选型背诵版|按创建 / 结构 / 行为三类,场景 + 选型 + 作用,直击避免重复造轮子

一、创建型模式(5 种:解决「对象重复 new、重复初始化」,统一对象创建,不重复构建逻辑)

表格

模式适用业务场景核心作用(防重复造轮子)
单例 Singleton配置管理类、线程池、Redis 连接池、工具类全局只实例化 1 份,避免频繁创建销毁、重复初始化资源
简单工厂同家族少量实现类创建(短信:阿里云 / 腾讯云)统一封装 new 逻辑,各处不用重复实例化
工厂方法 FactoryMethod业务持续扩展(支付:微信 / 支付宝 / 银联)一个产品对应一个工厂,新增实现不加原有代码,不用重复创建代码
抽象工厂 AbstractFactory成套产品(支付 + 对账、消息 + 推送成套组件)批量创建一组关联对象,避免多处零散 new 成套组件
建造者 Builder复杂对象组装(多条件查询参数、复杂返回 VO)拆分构建步骤,链式构造,避免大量重复 set 赋值代码

选型口诀:单例控唯一,简单工厂少扩展,工厂方法易扩展,抽象工厂成套造,建造者拼复杂对象。

二、结构型模式(7 种:解决「类整合、兼容、增强、树形封装」,统一结构复用)

表格

模式适用业务场景核心作用(防重复造轮子)
适配器 Adapter对接三方接口(多种第三方登录、不同支付 SDK)统一对外入参,兼容多版本接口,不用重复写适配转换代码
装饰器 Decorator动态叠加功能(日志 + 权限 + 限流层层包装接口)原有代码不动,叠加增强,不用每次新增功能重写原有类
代理 Proxy接口鉴权、缓存、事务、RPC 远程调用统一代理层实现通用增强,业务代码无需重复写日志 / 校验
组合 Composite菜单树、部门组织、商品多级分类统一处理单个节点和节点集合,不用分别写单条 / 批量两套遍历逻辑
外观 Facade复杂多步骤接口聚合(下单:扣库存 + 生成订单 + 发消息)封装内部复杂多类调用,对外只暴露一个入口,上层不用重复拼接调用链路
享元 Flyweight海量重复对象(字典、商品分类、常量字典)复用内存中相同对象,避免重复创建大量一模一样实例
桥接 Bridge两个维度同时扩展(消息:短信 / 邮箱 + 普通 / 加急)拆分两大变化维度,避免类爆炸,减少重复子类

选型口诀:适配兼容第三方,装饰动态加功能,代理统一做增强,组合搞定树形类,外观简化复杂调用,享元复用重复对象。

三、行为型模式(11 种:解决「重复分支、重复流程、重复通知、重复遍历」逻辑复用)

表格

模式适用业务场景核心作用(防重复造轮子)
策略 Strategy大量 if-else 分支(运费计算、优惠规则、支付渠道)拆分每种算法为独立策略,消除臃肿判断,新增优惠不用改老代码
模板方法 Template流程固定、局部逻辑不同(导入 Excel、订单审核、文件解析)父类固定公共流程,子类只实现差异化步骤,公共逻辑只写 1 次
观察者 Observer下单联动:扣库存、发短信、积积分、记录日志发布者与监听解耦,新增下游业务不用修改下单主逻辑
迭代器 Iterator自定义集合遍历、树形遍历统一遍历规范,不用每种集合手写一套遍历代码
命令 Command后台任务队列、撤销操作、定时指令请求封装成对象,统一排队执行,不用重复封装请求参数
状态 State订单多状态流转(待支付→已付款→已发货→已完成)消除状态 if 分支,每个状态独立类,新增状态不改动原有代码
责任链 Chain参数校验→黑名单→限流→权限校验多级拦截链式流转校验,新增校验节点直接加链,不用嵌套 if
备忘录 Memento表单草稿保存、订单数据回滚保存对象快照,不用重复存储多份历史数据
中介者 Mediator多组件互相依赖(表单多字段联动)组件通过中介通信,消除大量组件互相调用代码
访问者 Visitor同一实体多维度统计(商品:销量统计 / 利润统计)实体不动,新增统计逻辑新增访问类,不修改原有实体
解释器 Interpreter规则表达式解析、简易引擎固定语法统一解析,不用重复编写表达式解析逻辑

选型口诀:分支多用策略,流程固定用模板,联动通知观察者,多级拦截责任链,状态流转用状态。

四、落地选用三步法(项目实战选模式通用规则)

  1. 找重复:重复 new→创建型;重复转换 / 增强→结构型;重复 if / 重复流程→行为型
  2. 找变化:以后频繁新增实现(支付、优惠)优先:策略、工厂;以后频繁加功能:装饰、代理
  3. 防过度设计
    • 简单小工具:直接工具类,不用设计模式
    • 中等通用逻辑:工具类 + 模板
    • 业务易扩展、多实现场景:上设计模式

五、终极精简背诵总结

  1. 创建型管实例创建,杜绝重复 new;结构型管类整合,统一兼容增强;行为型管业务逻辑,消灭冗余分支与流程
  2. 选用设计模式核心目的:剥离重复代码、隔离变化代码、复用通用代码,从架构层面杜绝重复造轮子
http://www.jsqmd.com/news/949652/

相关文章:

  • 3克拉钻戒定制必看!5大避坑指南助你选对 - 速递信息
  • 3大核心技巧:彻底掌握Umi-OCR离线文字识别软件
  • 终极GKD订阅管理指南:告别广告困扰,轻松配置自动化规则
  • 郑州市2026年黄金回收白银回收铂金回收权威门店 TOP5+正规可靠机构电话与地址汇总 - 中安检金银铂钻回收
  • 华尔街重估特斯拉:400美元买现有业务,免费获万亿级人形机器人Optimus
  • STK COM互联避坑指南:用MATLAB创建向量和角度时,你可能会遇到的3个报错及解决方法
  • OpenClaw实战:ROS 2机械臂三层控制架构与实时性工程实践
  • 2026优质半导体论坛合集,轻松获取行业干货与资讯 - 品牌2026
  • 宜宾市2026年黄金回收白银回收铂金回收放心选真心推荐 靠谱门店排行 + 联系电话整理 - 中业金奢再生回收中心
  • 深度解析HS2-HF Patch:200+插件如何重构Honey Select 2的游戏体验
  • 突破性工具:一键解锁IDM完整功能的终极解决方案
  • 一看就会!2026年免费图片转PDF保姆级教程(电脑+手机+在线全覆盖) - 软件小管家
  • 2026年邢台市黄金回收白银回收铂金回收门店 TOP5榜单无套路:实体店铺地址电话一览 - 诚金汇钻回收公司
  • 终极指南:如何高效使用Cura进行3D打印切片优化
  • 5分钟打造Windows桌面智能监控中心:TrafficMonitor插件全攻略 [特殊字符]
  • TrafficMonitor插件系统终极指南:5分钟打造你的Windows桌面监控中心
  • AXI协议 SoC 高频面试题整理(含考察点+答题要点)
  • 3个实用技巧让Figma中文界面插件提升你的设计效率200%
  • 5分钟极速部署:Windows虚拟显示驱动ParsecVDD实战指南
  • 3分钟搞定NTRIP:这个开源工具让GPS差分数据变得超简单
  • 工业焊接场景下的结构光焊缝定位系统:含完整OpenCV+C++源码与Qt界面
  • 复杂流程可视化难题的现代化解法:easy-flow 架构解析与实践指南
  • 3PEAK思瑞浦 LMV324B-TR TSSOP14 运算放大器
  • 2026年银川市口碑首选!黄金回收铂金回收白银回收权威门店 TOP5 附咨询电话 - 信誉隆金银铂奢回收
  • 实战物联网硬件:基于快马平台生成altium designer风格的紧凑型四层pcb代码
  • 广东骑行眼镜厂家批发实力排行:5家头部供应商盘点 - 奔跑123
  • go2rtc终极指南:5分钟搭建零延迟摄像头WebRTC直播系统
  • MATLAB一键语谱图生成工具:含STFT核心函数、音频示例与实操录像
  • 3PEAK思瑞浦 LMV324B-SR SOP14 运算放大器
  • 长春绿园区黄金回收实测:6家上门机构服务全比较 - 黄金上门回收