* [一、概述](#一概述) * [二、创建型](#二创建型) * [1. 单例模式](#1-单例模式) * [2. 简单工厂](#2-简单工厂) * [3. 工厂方法模式](#3-工厂方法模式) * [4. 抽象工厂模式](#4-抽象工厂模式) * [5. 生成器](#5-生成器) * [6. 原型模式](#6-原型模式) * [三、行为型](#三行为型) * [1. 责任链](#1-责任链) * [2. 命令模式](#2-命令模式) * [3. 解释器模式](#3-解释器模式) * [4. 迭代器](#4-迭代器) * [5. 中间人模式](#5-中间人模式) * [6. 备忘录模式](#6-备忘录模式) * [7. 观察者模式](#7-观察者模式) * [8. 策略模式](#8-策略模式) * [9. 模板方法](#9-模板方法) * [10. 访问者模式](#10-访问者模式) * [11. 空对象模式](#11-空对象模式) * [四、结构型](#四结构型) * [1. 适配器模式](#1-适配器模式) * [2. 桥接模式](#2-桥接模式) * [3. 组合模式](#3-组合模式) * [4. 装饰者模式](#4-装饰者模式) * [5. 蝇量模式](#5-蝇量模式) * [6. 动态代理](#6-动态代理) * [参考资料](#参考资料) # 一、概述 设计模式不是代码,而是解决问题的方案,学习现有的设计模式可以做到经验复用。 拥有设计模式词汇,在沟通时就能用更少的词汇来讨论,并且不需要了解底层细节。 # 二、创建型 ## 1. 单例模式 ### 意图 确保一个类只有一个实例,并提供该实例的全局访问点。 ### 类图 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。