23种设计模式


2021-03-12 上次更新时间:4/29/2022, 9:34:08 AM 0

GOF总结的设计模式共有 23 种。又可以把这些模式分为三大类:

  • 创建型模式(Creational Patterns)
  • 结构型模式/组合型模式(Structural Patterns)
  • 行为型模式(Behavioral Patterns)

# 从设计到模式

设计和模式是分开的。

  • 设计是指设计的原则
  • 模式是根据原则和经验总结出来的范式

就是说,设计原则是前提,理解了这些设计原则,再加上经验总结,才总结出来的模式。

# 创建型模式

创建型模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

创建型模式包含有以下模式:

  • 工厂模式(Factory Pattern)
  • 抽象工厂模式(Abstract Factory Pattern)
  • 建造者模式(Builder Pattern)
  • 单例模式(Singleton Pattern)
  • 原型模式(Prototype Pattern)

在 js 中,可以将 工厂方法模式、抽象工厂模式、建造者模式 都归纳为 工厂模式。

# 结构型模式

结构型模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。

  • 适配器模式(Adapter Pattern)
  • 装饰器模式(Decorator Pattern)
  • 代理模式(Proxy Pattern)
  • 外观模式(Facade Pattern)
  • 桥接模式(Bridge Pattern)
  • 过滤器模式(Filter、Criteria Pattern)
  • 组合模式(Composite Pattern)
  • 享元模式(Flyweight Pattern)

# 行为型模式

行为型模式特别关注对象之间的通信。

  • 策略模式(Strategy Pattern)
  • 模板模式(Template Pattern)
  • 迭代器模式(Iterator Pattern)
  • 责任链模式(Chain of Responsibility Pattern)
  • 命令模式(Command Pattern)
  • 观察者模式(Observer Pattern)
  • 解释器模式(Interpreter Pattern)
  • 中介者模式(Mediator Pattern)
  • 备忘录模式(Memento Pattern)
  • 状态模式(State Pattern)
  • 空对象模式(Null Object Pattern)
  • 访问者模式(Visitor Pattern)

js 中常用

用一个图片来整体描述一下设计模式之间的关系:

上次更新时间: 4/29/2022, 9:34:08 AM