当前位置: 首页 > web >正文

Golang|工厂模式

  • 工厂模式是一种创建型设计模式,它的核心思想是:把对象的创建过程封装起来,不直接在代码中 new 一个对象,而是通过一个“工厂”来生成对象。
  • 这样做的好处是:
    • 降低了代码之间的耦合(依赖具体类减少)
    • 更方便扩展和维护(想换对象,只需要改工厂逻辑)
  • 工厂模式 = 把"创建对象"这件事封装起来,让代码更灵活、更易扩展、更易维护。

在这里插入图片描述

// 以简单工厂模式为例,假设我们要生产小狗和小猫对象:package mainimport "fmt"// 1. 定义动物接口
type Animal interface {Speak()
}// 2. 具体的狗结构体
type Dog struct{}func (d Dog) Speak() {fmt.Println("汪汪!")
}// 3. 具体的猫结构体
type Cat struct{}func (c Cat) Speak() {fmt.Println("喵喵!")
}// 4. 工厂类
type AnimalFactory struct{}// CreateAnimal 是工厂方法
func (a AnimalFactory) CreateAnimal(animalType string) Animal {switch animalType {case "dog":return Dog{}case "cat":return Cat{}default:return nil}
}// 5. 主函数(客户端使用)
func main() {factory := AnimalFactory{}animal1 := factory.CreateAnimal("dog")if animal1 != nil {animal1.Speak() // 输出:汪汪!}animal2 := factory.CreateAnimal("cat")if animal2 != nil {animal2.Speak() // 输出:喵喵!}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 工厂模式用于生成符合统一接口的KV数据库实例。
  • 工厂函数getKVDB接受数据库类型和本地存储路径作为参数,返回一个IKeyValueDB接口。
  • 工厂函数内部根据参数创建具体的数据库实例,如Badger或Boat,并打开数据库。
  • 工厂模式的思想是能够生成多种产品,但所有产品都实现同一个接口。
http://www.xdnf.cn/news/2763.html

相关文章:

  • nigx屏蔽无用爬虫
  • 【数据可视化-42】杂货库存数据集可视化分析
  • C 语言函数指针与指针函数详解
  • 轻舟系列FPGA加速卡:大模型分布式训练中的高效协同者
  • 因特网和万维网
  • 下载同时返回其他参数
  • 数据分析1
  • Python 3如何用pygetwindow包将指定窗口顶到最上层(激活窗口)
  • MuJoCo 仿真注意事项
  • Deepseek-v3+cline+vscode java自动化编程
  • C语言指针
  • 2015, JLink,下载安装步骤
  • AI技术落地实战指南:从核心突破到产业赋能
  • iPhone闹钟无法识别调休致用户迟到,苹果客服称会记录反馈
  • Boost 库安装 (windows 11)
  • 【LLM模型开发】WordPiece算法
  • QT6 源(58)篇一:阅读与注释 QString 这个类,先给出其应用举例
  • OpenCV VC编译版本
  • iView Table 组件跨页选择功能实现文档
  • 4月28日日记
  • Mars3d加载矢量数据控制台提示addGraphic:数据id存在冲突,已重新赋值id
  • Rust 学习笔记:编程练习(一)
  • 火语言RPA--腾讯云存储
  • TP5兼容达梦国产数据库
  • 深度学习篇---抽样
  • 路径积分粗糙度
  • 微信聊天机器人搭建 教程/开发
  • 《计算机视觉度量:从特征描述到深度学习》—图片多模态CLIP,BLIP2,DINOv2特征提取综述
  • CUDA编程 - 测量每个block内线程块的执行时间 - 如何应用到自己的项目中 - clock()
  • 利用 Google Earth Engine 探索江宁区 2010 - 2020 年 EVI 时空变化