设计模式[1]------分类&口诀
设计模式(Design Patterns)主要指GoF(Gang of Four)提出的23种经典模式,按照目的分为三大类:创建型(Creational) (关注对象创建机制)、结构型(Structural) (关注类和对象的组合)、行为型(Behavioral)(关注对象间的交互和责任分配)。以下表格列出所有模式,按类别归纳,包含简要描述(言简意赅)。表格基于标准分类,便于对比。
| 类别 | 模式名称 | 简要描述 |
|---|---|---|
| 创建型 (Creational) (5种:处理对象创建,避免直接实例化) | Abstract Factory (抽象工厂) | 提供接口创建相关对象家族,而不指定具体类。 |
| Builder (生成器) | 分步构建复杂对象,分离构造与表示。 | |
| Factory Method (工厂方法) | 定义接口创建对象,由子类决定实例化类。 | |
| Prototype (原型) | 通过克隆现有对象创建新对象。 | |
| Singleton (单例) | 确保类只有一个实例,并提供全局访问点。 | |
| 结构型 (Structural) (7种:处理实体组合,形成更大结构) | Adapter (适配器) | 转换接口,使不兼容类能合作。 |
| Bridge (桥接) | 分离抽象与实现,可独立变化。 | |
| Composite (组合) | 将对象组合成树形结构,表示部分-整体层次。 | |
| Decorator (装饰器) | 动态添加职责,而不影响其他对象。 | |
| Facade (外观) | 为子系统提供统一接口,简化访问。 | |
| Flyweight (享元) | 共享细粒度对象,减少内存使用。 | |
| Proxy (代理) | 为其他对象提供占位符,控制访问。 | |
| 行为型 (Behavioral) (11种:处理算法、责任和通信) | Chain of Responsibility (责任链) | 沿处理者链传递请求,避免耦合。 |
| Command (命令) | 将请求封装为对象,支持撤销/队列。 | |
| Interpreter (解释器) | 定义语言的文法,并解释句子。 | |
| Iterator (迭代器) | 提供顺序访问集合元素,而不暴露内部。 | |
| Mediator (中介者) | 定义对象交互中介,减少直接依赖。 | |
| Memento (备忘录) | 捕获对象内部状态,支持恢复。 | |
| Observer (观察者) | 定义一对多依赖,对象变化时通知他人。 | |
| State (状态) | 允许对象在内部状态变化时改变行为。 | |
| Strategy (策略) | 定义算法家族,可互换使用。 | |
| Template Method (模板方法) | 定义算法骨架,子类实现步骤。 | |
| Visitor (访问者) | 在不改变元素类前提下,定义新操作。 |
记忆口诀
创五构七行十一,
抽象建厂原单例;
适桥组装外享代,
责命解迭中备观,
状策模访莫遗忘。
- 创五:创建型5种(抽象工厂、生成器、工厂方法、原型、单例)。
- 构七:结构型7种(适配器、桥接、组合、装饰、外观、享元、代理)。
- 行十一:行为型11种(责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者)。