23种设计模式

创建类型:5种

设计模式 核心优势 适用场景关键词
单例 控制实例数量,减少内存开销 全局唯一、资源复用
工厂方法 解耦创建与使用,支持开闭原则 动态扩展、子类决策
抽象工厂 统一接口管理关联对象 产品族创建、跨平台兼容
建造者 构造过程灵活,代码可读性高 分步构建、复杂对象配置
原型 提升性能,简化对象生成流程 高效克隆、避免重复初始化成本

结构类型:7种

模式 核心优势 场景关键词
代理 隐藏细节,增强非功能性需求 访问控制、延迟加载、安全增强
适配器 无缝对接不同接口标准 接口兼容、旧系统整合
桥接 独立变化维度,降低耦合度 多维度扩展、抽象与实现分离
装饰器 灵活叠加功能,避免继承膨胀 动态扩展功能、AOP增强
外观 降低子系统使用复杂度 简化调用、统一入口
组合 统一处理整体与部分的关系 树形结构、递归操作
享元 减少内存占用,提升性能 对象复用、资源优化

行为类型:11种

模式 核心优势 适用场景关键词
策略模式 避免条件分支,提升扩展性 动态算法替换
模板方法 复用代码结构,规范子类行为 固定流程框架
观察者 解耦事件源与订阅者 事件通知、发布订阅
迭代器 隐藏数据结构复杂性 统一遍历接口
责任链 动态组合处理节点 多级处理流程
命令模式 解耦请求与执行 可撤销操作、异步任务
备忘录 实现非破坏性回滚 状态快照管理
状态模式 消除复杂条件逻辑 行为依赖状态变化
访问者 扩展功能不修改原有类 结构稳定但操作多变
中介者 减少网状依赖关系 复杂对象交互协调
解释器 灵活支持领域规则 特定语法解析
相关推荐
驭渊的小故事20 分钟前
Spring AI Alibaba 实战:从maven依赖治理到声明式工具调用
java·人工智能·spring
Elastic 中国社区官方博客44 分钟前
我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic
java·大数据·开发语言·elasticsearch·搜索引擎·全文检索·es
tyn1881 小时前
记录本地安装nacos服务的方法及异常
java·开发语言
步行cgn2 小时前
Spring MVC 视图机制的核心接口与类
java·开发语言·后端·spring·mvc
y1su2 小时前
Leetcode 字符串模板
java·数据结构·算法·leetcode·职场和发展·动态规划
我命由我123453 小时前
Python 开发 - Python 的 pathlib
java·开发语言·后端·python·学习·java-ee·学习方法
苜蓿muxu3 小时前
Java 字符串拼接:+、StringBuilder、StringBuffer的区别
java
摇滚侠3 小时前
《Java并发编程之美》第 4 章 Java 并发包中原子操作类原理剖析 阅读笔记 7
java·笔记·python
旋律4144 小时前
同义方法区别(增加类与删除类)
java·后端