创建型

  1. 单例(singleton):确保有且只有一个对象被创建。
  2. 工厂方法(factory method):由子类决定要创建的具体类是哪一个。
  3. 抽象工厂(abstract factory):允许客户创建对象的家族,而无需指定他们的具体类。
  4. 建造者(builder):
  5. 原型(prototype):

    结构型

  6. 装饰者(decorator):包装一个对象,以提供新的行为。

  7. 代理(proxy):包装对象,以控制对此对象的访问。
  8. 外观(facade):简化一群类的接口。
  9. 组合(composite):客户用一致的方式处理对象集合和单个对象。
  10. 适配器(adapter):封装对象,并提供不同的接口。
  11. 蝇量(flyweight):
  12. 桥接(bridge):

    行为型

  13. 模板方法(template method):由子类决定如何实现一个算法中的步骤。

  14. 命令(command):封装请求成为对象。
  15. 迭代器(iterator):在对象的集合之中游走,而不暴露集合的实现。
  16. 观察者(observer):让对象能够在状态改变时被通知。
  17. 状态(state):封装了基于状态的行为,并使用委托在行为之间切换。
  18. 策略(strategy):封装可以互换的行为,并使用委托来决定要使用哪一个。
  19. 中介者(mediator):
  20. 访问者(visitor):
  21. 备忘录(memento):
  22. 解释器(interpreter):
  23. 责任链(chain of responsibility):