创建型模式

  1. Abstract Factory (抽象工厂)
    1. 一种工厂的抽象,产物是工厂
  2. Builder (生成器)
  3. Factory Method (工厂方法)
    1. 产物是一个具体的类
  4. Singleton (单例模式)

结构型模式

  1. Adapter (适配器)
    1. 将一个类的接口转换成客户希望的另一个接口
  2. Bridge (桥接)
    1. 将抽象部分与它的实现部分分离,使他们可以独立的变化;
    2. 举例: AInterface 和 AServiceImpl
  3. Composite (组合)
    1. 部分-整体
  4. Decorator (装饰),别名 Wrapper (包装器)
    1. 动态的给一个雷添加一些额外的功能。
  5. Facade (外观)
    1. 为子系统中的一组接口提供一个统一的高层接口。
  6. Flyweight (享元)
    1. 共享对象
  7. Proxy (代理)
    1. 为其他对象体统一种代理以控制对这个对象的访问;

行为型模式

  1. Chain of Responsibility (职责链)
    1. 链条上的每个节点都知道自己的职责,以及下一个节点的信息
  2. Command (命令)
    1. 请求(动作)封装成对象来完成事务
  3. Interpreter (解释器)
    1. 将特定语法规则下的输入信息,翻译成目标格式信息
  4. Iterator (迭代器)
    1. 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示
  5. Mediator (中介者)
    1. 用一个中介对象来封装一系列的对象交互;
  6. Memento (备忘录)
    1. 不破坏封装性的前提下,补货一个对象的内部状态,并在该对象之外保存这个状态;
    2. 对象之外的一份拷贝
  7. Observer (观察者)
    1. 依赖,发布-订阅
  8. State (状态)
    1. 允许一个对象再起内部状态改变时改变它的行为。
    2. 例如说,TCP网络连接对象,在三次握手后,状态转成为信道已连通
  9. Strategy (策略)
    1. 定义一系列的算法,把它们一个个封装起来,并且使他们可相互替换;
  10. Template Method(模板方法)
    1. 顶一个一个操作中的算法的骨架,然后将步骤延迟到子类中;
    2. 就是定好了框架,然后子类可以自己选择填充的方式;
  11. Visitor (访问者)
    1. 表示一个作用于某对象结构中的各个元素的操作;
    2. 类似于一个更广泛话的迭代器