Golang设计模式之模板方法模式

模板方法模式模板方法模式是一种行为型设计模式,它在父类中定义一个算法的框架,允许子类在不改变算法结构的情况下重写算法的某些特定步骤。这种模式通过把不变的部分代码放在父类中,把可变的行为延迟到子类中实现,从而提高了代码的复用性。 模板方法模式中的角色 AbstractClass(抽象类):定义了模板方法和算法的框架。它实现了一些步骤,这些步骤可以是具体的方法也可以是抽象方法
阅读全文

Go 1.23 新版本新特性之迭代器

Go1.23新特性Go 1.23 版本于2024年8月14日发布,带来了多项重大更新。本文将重点介绍 Go 1.23 版本中的迭代器(iterator)功能,这是对 Go 语言生态系统的一次重要改进。 为什么引入标准迭代器在 Go 语言中,迭代器并非新概念,但现有的迭代器设计和使用方式各不相同。为了统一迭代器的标准化形式,Go 1.23 版本引入了标准迭代器,使得开发者只
阅读全文

Golang设计模式之代理模式

代理模式代理模式是一种结构型设计模式,它为其他对象提供一个代理以控制对这个对象的访问。代理模式在不直接访问实际对象的情况下,提供了对目标对象的间接访问。通过引入一个代理对象来间接操作实际对象,可以在不改变实际对象代码的前提下,增加额外的功能操作,如访问控制、延迟初始化、日志记录等。 代理模式中的角色 Subject(主题):定义了RealSubject和Proxy共有的接
阅读全文

Golang设计模式之适配器模式

适配器模式适配器模式是一种结构型设计模式,它允许将不兼容的接口转换为一个客户端期望的另一个接口。适配器模式使得那些接口不兼容的类可以一起工作。 适配器模式中的角色和职责 Target(目标抽象类):定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。 Adapter(适配器类):作为一个转换器,对Adaptee和Target进行适配,适配器类是适配器模式的核心。
阅读全文

Golang设计模式之单例模式

单例模式单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于管理共享资源,如配置信息、线程池、缓存等。 单例模式的角色 单例(Singleton)角色:单例类负责创建自己的实例,并提供一个访问该实例的全局访问点。 Go示例下面是一个使用Go语言实现的单例模式示例。我们将创建一个简单的配置管理器,它将作为单例使用。
阅读全文

Golang设计模式之抽象工厂方法

抽象工厂方法模式概述抽象工厂方法模式是一种创建型设计模式,它提供了一种方式,用于创建一系列相关或相互依赖的对象,而不需要指定它们具体的类。这种模式通过定义一个创建对象的接口,允许客户端使用这个接口来创建各种产品,而不需要知道具体的类。 产品族与产品等级结构 产品族:具有相同特点或功能,但来自不同地区、厂商、开发包或组织模块的产品集合。 产品等级结构:具有相同特点或功能
阅读全文

Golang设计模式之工厂方法模式

工厂方法模式概述工厂方法模式是一种创建型设计模式,其核心思想是定义一个用于创建对象的接口,但让实现这个接口的子类来决定实例化哪一个类。工厂方法把一个类的实例化推迟到其子类。 工厂方法模式中的角色和职责 抽象工厂(Abstract Factory)角色:定义创建产品对象的接口,但不实现该接口。 具体工厂(Concrete Factory)角色:实现抽象工厂中的接口方法,
阅读全文

Golang设计模式之简单工厂模式

简单工厂模式概述简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在这种模式中,一个工厂类负责创建其他类的实例,并且封装实例的创建逻辑。这种模式让类的实例化推迟到子类进行。 为什么需要简单工厂模式在没有工厂模式的情况下,如果需要创建多种类型的对象,可能会导致一个类中包含大量条件判断语句,这不仅增加了代码的复杂性,也违反了单一职责原则和开闭原则。 简
阅读全文

RAG优化

RAG概述RAG,即"RetrievalAugmented Generation",是一种结合了检索(Retrieval)和生成(Generation)的机器学习模型框架。它广泛应用于自然语言处理任务,如文本生成和问答系统等。RAG模型首先通过检索机制从大型文档集合中检索出与输入查询最相关的文档或文档片段,然后利用这些信息作为上下文,输入到生成模型中,以生成响应或完成特定的语言任务。RA
阅读全文

使用docker-compose构建本地lamp开发环境

使用使用 Docker 和 项目在 Windows 上搭建一个 LAMP 开发环境,将本地的 PHP 项目、MySQL映射到 Docker 服务器上。 前置条件1. Docker Desktop: 请确保已在 Windows 上安装并运行最新版的 Docker Desktop。2. Git: 需要安装 Git 来克隆代码库。 步骤 1. 克隆 LAMP 项目
阅读全文