
构建器模式是一种创造性的设计模式,它为逐步构建复杂对象提供了灵活的解决方案。它允许您使用相同的构造过程创建对象的不同表示。
考虑建造一台计算机。计算机可以有各种组件,如 cpu、ram、存储等。
构建器模式不需要在构造函数中要求所有这些参数,而是允许您逐步设置每个组件。
package main
import "fmt"
// Product
type Computer struct {
CPU string
RAM string
Storage string
OS string
}
// Builder Interface
type ComputerBuilder interface {
SetCPU(cpu string) ComputerBuilder
SetRAM(ram string) ComputerBuilder
SetStorage(storage string) ComputerBuilder
SetOS(os string) ComputerBuilder
Build() *Computer
}
// Concrete Builder
type PCBuilder struct {
computer *Computer
}
func NewPCBuilder() *PCBuilder {
return &PCBuilder{&Computer{}}
}
func (b *PCBuilder) SetCPU(cpu string) ComputerBuilder {
b.computer.CPU = cpu
return b
}
func (b *PCBuilder) SetRAM(ram string) ComputerBuilder {
b.computer.RAM = ram
return b
}
func (b *PCBuilder) SetStorage(storage string) ComputerBuilder {
b.computer.Storage = storage
return b
}
func (b *PCBuilder) SetOS(os string) ComputerBuilder {
b.computer.OS = os
return b
}
func (b *PCBuilder) Build() *Computer {
return b.computer
}
// Client Code
func main() {
builder := NewPCBuilder()
computer := builder.
SetCPU("Intel i7").
SetRAM("16GB").
SetStorage("1TB SSD").
SetOS("Windows 7").
Build()
fmt.Printf("Computer built: %+v\n", computer)
}
产品(计算机):表示将使用各种属性构建的复杂对象。
builder 接口(computerbuilder):定义设置产品每个组件的方法。
具体构建器(pcbuilder):实现构建器接口。
客户端代码:创建一个新的构建器实例。
以上就是Go 设计模式#Builder的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号