设计模式23种


创建型

对象的创建。5

创建型 定义 可变部分(允许独立变化,而又不会导致重新设计)
工厂方法 Factory Method 定义创建对象的接口,让子类决定实例化 被实例化的子类
抽象工厂 Abstract Factory 提供创建一系列相关或依赖对象的接口,无需指定具体类 产品对象家族
原型 Prototype 拷贝原型,创建新对象 被实例化的类
单例 Singleton 一个类仅有一个实例 一个类的唯一实例
建造者 Builder 复杂对象的构建与表示分离,构建过程创建不同的表示 如何创建一个组合对象

结构型

处理类或对象的组合。7

结构型 定义 可变部分
适配器 Adapter 类的接口转换,不兼容的类可以一起工作 对象的接口
桥接 Bridge 类的抽象与实现分离,都可以独立地变化 对象的实现
组合 Composite 对象组合成树形结构,使用具有一致性 一个对象的结构和组成
装饰者 Decorator 动态添加额外的职责,扩展功能更灵活 对象的职责,不生成子类
外观 Facade 一组接口提供一个高层接口,使子系统更加容易使用 一个子系统的接口
享元 Flyweight 共享支持细粒度对象 对象的存储开销
代理 Proxy 其他对象代理控制这个对象的访问 如何访问一个对象;该对象的位置

行为型*

对象间的通信。11

行为型 定义 可变部分
解释器 Interpreter 给定语言,定义文法表示和解释器,解释句子 一个语言的文法及解释
模板方法 Template Method 定义操作的骨架,将一些步骤延迟到子类中 算法中的某些步骤
职责链 Chain of Responsibility 为解除耦合,使多个对象都有机会处理这个请求 满足一个请求的对象
命令 Command 请求封装为对象,参数化请求,可取消操作 何时、怎样满足一个请求
迭代器 Iterator 顺序访问聚合对象 如何遍历各元素
中介者 Mediator 中介对象封装对象交互 对象间交互
备忘录 Memento 捕获对象的内部状态并保存,可将对象恢复 哪些私有信息,何时存储
观察者 Observer 一个对象的状态发生改变,所有依赖对象都得到通知并刷新 多个对象依赖于另外一个对象,如何保持一致
状态 State 对象内部状态改变时改变它的行为 对象的状态
策略 Strategy 一系列的算法,可替换 算法
访问者 Visitor 不改变各类的前提下定义新操作 某些可作用于一个/组对象的操作,但不修改这些对象的类

UML类图