设计模式列表

未匹配的标注

一、创建型模式(Creational Patterns):

  1. 简单工厂模式(Simple Factory Pattern):简单工厂模式是最基本的工厂模式,它根据传入的参数,决定创建哪种类的对象,属于静态工厂方法模式。但它的缺点是不够灵活,如果要新增一个产品类,就需要修改工厂类的代码,违反了开闭原则。
  2. 工厂方法模式(Factory Method Pattern):工厂方法模式是将实例化对象的任务交给子类去完成,即定义一个用于创建对象的接口,让子类决定将哪一个类实例化。这样可以将对象的创建延迟到子类中进行,符合开闭原则。
  3. 抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种封装一组相关或相互依赖对象的方式,而不需要指定它们的具体类。抽象工厂模式通过一个接口或抽象类,定义了一组工厂方法来创建一系列的产品对象。
  4. 单例模式(Singleton Pattern):保证一个类仅有一个实例,并提供一个全局访问点。
  5. 建造者模式(Builder Pattern):将一个复杂对象的构建过程和其表示分离,使得同样的构建过程可以创建不同的表示。
  6. 原型模式(Prototype Pattern):通过复制现有的对象来创建新的对象实例。

二、结构型模式(Structural Patterns):

  1. 适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另一个接口。
  2. 桥接模式(Bridge Pattern):将抽象部分与实现部分分离,使它们可以独立变化。
  3. 组合模式(Composite Pattern):将对象组合成树形结构以表示部分-整体的层次结构。
  4. 装饰器模式(Decorator Pattern):动态地给对象添加额外的职责,而不需要修改其原始类。
  5. 外观模式(Facade Pattern):为子系统中的一组接口提供一个统一的接口。
  6. 享元模式(Flyweight Pattern):通过共享内部状态,让系统中能够存储更多的对象。
  7. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。

三、行为型模式(Behavioral Patterns):

  1. 模板方法模式(Template Method Pattern):定义一个操作中的算法框架,将一些步骤延迟到子类中实现。
  2. 策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并使它们可以互换。
  3. 命令模式(Command Pattern):将一个请求封装成一个对象,使得可以用不同的请求对客户进行参数化。
  4. 职责链模式(Chain of Responsibility Pattern):为请求创建一个接收者对象的链,将请求沿着链传递,直到有一个对象处理它为止。
  5. 状态模式(State Pattern):允许对象在其内部状态发生改变时改变它的行为。
  6. 观察者模式(Observer Pattern):定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,所有依赖它的对象都会被通知并自动更新。
  7. 中介者模式(Mediator Pattern):用一个中介对象来封装一系列的对象交互。
  8. 备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以后可以将对象恢复到先前保存的状态。
  9. 迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。
  10. 解释器模式(Interpreter Pattern):给定一个语言,定义它的文法的一种表示,并定义一个解释器,用该解释器来解释语言中的句子。
  11. 访问者模式(Visitor Pattern):在不改变各元素类的前提下,定义作用于这些元素的新操作。

四、并发型模式(Concurrency Patterns)

  1. 生产者消费者模式 (Producer-Consumer Pattern):由一组生产者向一个共享的通道(channel)发送消息,由一组消费者从该通道接收并处理消息。(也称为消息队列模式,Message Queue Pattern)
  2. 扇入模式 (Fan-In Pattern):将多个输入通道的数据汇聚到一个通道中,以便单个 goroutine 处理。(也称为多路复用模式,Multiplexing Pattern)
  3. 扇出模式 (Fan-Out Pattern):将一个输入通道的数据广播到多个输出通道,以便多个 goroutine 并发处理。(也称为拆分器模式,Splitter Pattern)
  4. 管道和过滤器模式 (Pipeline and Filters Pattern):将任务分解为多个处理步骤,并在这些步骤之间传递数据的模式。
  5. 互斥锁模式 (Mutex Pattern):使用互斥锁(mutex)保护共享资源,以避免并发访问问题。(也称为锁模式,Locking Pattern)
  6. 工作池模式 (Worker Pool Pattern):使用固定数量的 goroutine 执行并发的任务,并且所有任务都由工作队列进行调度。

五、Web 型模式(Web Patterns)

  1. 控制器模式 (Controller Pattern):将应用程序的请求和响应从底层逻辑中分离出来,并由控制器协调和处理请求和响应,以便应用程序的不同部分可以独立地开发和测试。
  2. 中间件模式 (Middleware Pattern):一种在HTTP请求处理期间实现逻辑的方法,通过在请求到达目标之前或响应离开之前修改或增强请求或响应,使得它可以应用于许多不同的用例,例如身份验证、授权、请求跟踪等。
  3. 路由器模式 (Router Pattern):通过解析URL或请求参数来确定应用程序中要执行的操作或处理程序,并将请求路由到正确的处理程序或方法,以便对请求进行处理。
  4. MVC模式 (Model-View-Controller Pattern):一种在应用程序中组织代码的方法,将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分,以便各部分可以独立地开发和测试,同时也使得代码更易于维护。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~