构建器模式是一种创造性的设计模式,它为逐步构建复杂对象提供了灵活的解决方案。它允许您使用相同的构造过程创建对象的不同表示。
考虑建造一台计算机。计算机可以有各种组件,如 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中文网其他相关文章!