# 设计模式学习笔记涵盖23种经典设计模式的核心概念，包括创建型、结构型和行为型模式，以及面向对象三大特性的理论基础

"封装""继承"和"多态"便是面向对象的三大特性,它们是掌握设计模式不可或缺的先决条件与理论基础,我们必须要对其进行全面透彻的理解。

## 创建型模式

**单例**:一个类在程序中只有一个实例对象,并提供一个全局访问该实例的方法。饿汉式,懒汉式。

**原型模式**:通过克隆一个现有的对象创建新的对象,而不是通过类。浅拷贝,深拷贝。

**工厂模式**:将对象的创建和使用过程分开,通过工厂负责生产对象。

**建造者模式**:将对象的构建过程分离。

## 结构型模式

**门面模式**:为复杂的子系统提供一个接口,将功能整合为一个接口。

**组合模式**:构建树形结构,统一处理部分与整体。

**装饰器模式**:给对象增加功能。

**适配器模式**:接口转换,解决不兼容问题。

**享元模式**:对象共享相同部分。

**代理模式**:控制对象的访问。

**桥接模式**:解耦,使两个维度能独立变化。

## 行为型模式

**模板方法**:在抽象类中定义算法骨架(模板方法),子类中添加具体实现。

**迭代器**:统一遍历,而不暴露数据的具体形式。

**责任链**:请求顺着链直到找到处理者。

**策略模式**:同一行为的多种实现方法。

**状态模式**:对象在不同状态下有不同的行为。

**备忘录模式**:保存和恢复对象状态。

**中介模式**:对象通过中介沟通。

**命令模式**:封装请求和执行,实现二者的解耦。

**访问者模式**:使数据结构与数据操作解耦。

**观察者模式**:对象间一对多的关系,一个对象更新后,其他依赖它的对象会得到通知并更新。

**解释器模式**:解析或执行特定的表达式或语言。
