# Java设计模式 **Repository Path**: feixiangnet/java-design-patterns ## Basic Information - **Project Name**: Java设计模式 - **Description**: Java设计模式 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: https://www.feixiang.net - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-21 - **Last Updated**: 2025-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 设计模式导图 在线网站:[【飞翔中文网】Java设计模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/00.html) | 模式类型 | 模式名称 | 作用 | |------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------| | 创建型模式 | [单例模式](https://feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%80%E7%AB%A0%E3%80%81%E5%88%9B%E5%BB%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/11.html) | 确保一个类仅有一个实例,并提供全局访问点。 | | | [工厂方法模式](https://feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%80%E7%AB%A0%E3%80%81%E5%88%9B%E5%BB%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/12.html) | 定义创建对象的接口,由子类决定实例化具体类。 | | | [抽象工厂模式](https://feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%80%E7%AB%A0%E3%80%81%E5%88%9B%E5%BB%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/13.html) | 创建相关或依赖对象的家族,而无需指定具体类。 | | | [建造者模式](https://feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%80%E7%AB%A0%E3%80%81%E5%88%9B%E5%BB%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/14.html) | 分步骤构建复杂对象,分离构造与表示。 | | | [原型模式](https://feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%80%E7%AB%A0%E3%80%81%E5%88%9B%E5%BB%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/15.html) | 通过克隆现有对象来创建新对象,避免重复初始化。 | | 结构型模式 | [适配器模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%BA%8C%E7%AB%A0%E3%80%81%E7%BB%93%E6%9E%84%E5%9E%8B%E6%A8%A1%E5%BC%8F/21.html) | 转换接口使不兼容的类能协同工作。 | | | [桥接模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%BA%8C%E7%AB%A0%E3%80%81%E7%BB%93%E6%9E%84%E5%9E%8B%E6%A8%A1%E5%BC%8F/22.html) | 分离抽象与实现,使两者可独立变化。 | | | [组合模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%BA%8C%E7%AB%A0%E3%80%81%E7%BB%93%E6%9E%84%E5%9E%8B%E6%A8%A1%E5%BC%8F/23.html) | 将对象组织成树形结构以表示“部分-整体”层次。 | | | [装饰器模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%BA%8C%E7%AB%A0%E3%80%81%E7%BB%93%E6%9E%84%E5%9E%8B%E6%A8%A1%E5%BC%8F/24.html) | 动态地为对象添加额外职责(扩展功能)。 | | | [外观模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%BA%8C%E7%AB%A0%E3%80%81%E7%BB%93%E6%9E%84%E5%9E%8B%E6%A8%A1%E5%BC%8F/25.html) | 为复杂子系统提供统一的高层接口。 | | | [享元模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%BA%8C%E7%AB%A0%E3%80%81%E7%BB%93%E6%9E%84%E5%9E%8B%E6%A8%A1%E5%BC%8F/26.html) | 共享细粒度对象以减少内存占用。 | | | [代理模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%BA%8C%E7%AB%A0%E3%80%81%E7%BB%93%E6%9E%84%E5%9E%8B%E6%A8%A1%E5%BC%8F/27.html) | 为其他对象提供代理以控制访问(如延迟加载)。 | | 行为型模式 | [模板方法模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/31.html) | 定义算法骨架,子类重写特定步骤。 | | | [策略模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/32.html) | 封装可互换的算法,使选择独立于客户端。 | | | [命令模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/33.html) | 将请求封装为对象,支持参数化与可撤销操作。 | | | [责任链模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/34.html) | 让多个对象依次处理请求,直到被响应。 | | | [中介者模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/35.html) | 通过中介对象集中管理对象间的复杂交互。 | | | [备忘录模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/36.html) | 保存对象内部状态以便后续恢复。 | | | [观察者模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/37.html) | 定义对象间的一对多依赖,状态变化时自动通知。 | | | [状态模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/38.html) | 封装状态相关行为,使对象随状态改变而改变行为。 | | | [访问者模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/39.html) | 将算法与对象结构分离,便于新增操作。 | | | [解释器模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/310.html) | 定义语法规则并解释语言中的句子。 | | | [迭代器模式](https://www.feixiang.net/Java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E7%AC%AC%E4%B8%89%E7%AB%A0%E3%80%81%E8%A1%8C%E4%B8%BA%E5%9E%8B%E6%A8%A1%E5%BC%8F/311.html) | 提供顺序访问聚合对象元素的方法。 |