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

Golang | Builder模式

  • Builder模式是一种创建型设计模式,用于分步骤构建复杂对象,尤其适用于构造过程复杂或需要多个配置选项的场景。
  • 将对象的构造过程与其表示分离,通过分步骤和链式调用的方式灵活创建对象,避免构造函数的参数爆炸,提升代码可读性和可维护性。
  • 什么是 Builder 模式?Builder 模式是一种创建型设计模式。它主要用来一步步构建一个复杂对象,而不是一次性通过构造函数完成。可以让对象的构建过程和表示(对象的最终形态)分离。常用于:对象有很多可选参数、构造过程复杂时,避免创建巨大的构造函数。
  • 简单理解:普通构造是一次性 “new”,Builder 是一步步 “组装”。
package mainimport "fmt"// 1. 定义最终要创建的复杂对象
type Computer struct {CPU    stringGPU    stringRAM    stringSSD    string
}// 2. 定义 Builder
type ComputerBuilder struct {cpu stringgpu stringram stringssd string
}// 3. 提供一系列链式设置方法
func (b *ComputerBuilder) SetCPU(cpu string) *ComputerBuilder {b.cpu = cpureturn b
}func (b *ComputerBuilder) SetGPU(gpu string) *ComputerBuilder {b.gpu = gpureturn b
}func (b *ComputerBuilder) SetRAM(ram string) *ComputerBuilder {b.ram = ramreturn b
}func (b *ComputerBuilder) SetSSD(ssd string) *ComputerBuilder {b.ssd = ssdreturn b
}// 4. 最后构建出Computer对象
func (b *ComputerBuilder) Build() Computer {return Computer{CPU: b.cpu,GPU: b.gpu,RAM: b.ram,SSD: b.ssd,}
}// 5. 使用示例
func main() {builder := &ComputerBuilder{}computer := builder.SetCPU("Intel i9").SetGPU("NVIDIA RTX 4090").SetRAM("64GB DDR5").SetSSD("2TB NVMe").Build()fmt.Printf("电脑配置: %+v\n", computer)
}
  • 应用:gorm链式函数构建sql语句

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

相关文章:

  • 神经网络(自己记录)
  • Java 设计模式心法之第25篇 - 中介者 (Mediator) - 用“中央协调”降低对象间耦合度
  • PDF嵌入隐藏的文字
  • Rule.resourceQuery(通过路径参数指定loader匹配规则)
  • PH热榜 | 2025-04-26
  • 百度Create大会深度解读:AI Agent与多模态模型如何重塑未来?
  • 如何删除Google Chrome中的所有历史记录【一键清除】
  • 【音视频】SDL窗口显示
  • Vue.js 核心特性解析:响应式原理与组合式API实践
  • IDEA 连接 Oracle 数据库
  • 《代码整洁之道》第7章 错误处理 - 笔记
  • SQLMesh 测试自动化:提升数据工程效率
  • 决策树随机深林
  • 国标GB28181视频平台EasyCVR助力打造太阳能供电远程视频监控系统
  • 高并发架构设计之缓存
  • 数模学习:二,MATLAB的基本语法使用
  • 安卓APP开发项目源码
  • Tauri打包时出现WixTools以及NSIS报错
  • 基于ArcGIS的洪水灾害普查、风险评估及淹没制图技术研究​
  • SpringBoot配置RestTemplate并理解单例模式详解
  • 招行:拟出资150亿元全资发起设立金融资产投资公司
  • 售卖自制外挂交易额超百万元,一男子因提供入侵计算机系统程序被抓
  • 中国难以承受高关税压力?外交部:任何外部冲击都改变不了中国经济基本面
  • 刘诚宇、杨皓宇进球背后,是申花本土球员带着外援踢的无奈
  • 苏丹宣布与阿联酋断交
  • 新华社:赵心童世锦赛夺冠,中国书写斯诺克运动新历史