当前位置: 首页 > 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并理解单例模式详解
  • 央媒关注给保洁人员设休息室:让每一份踏实奋斗得到尊重呵护
  • 可实时追踪血液中单个细胞的穿戴医疗设备问世
  • 福建省莆田市原副市长胡国防接受审查调查
  • 中国人民对外友好协会代表团访问美国
  • 铜钴巨头洛阳钼业一季度净利润同比大增九成,最新宣布首度进军黄金矿产
  • 中越海警2025年第一次北部湾联合巡逻圆满结束