建構器模式是一種創造性的設計模式,它為逐步建立複雜物件提供了靈活的解決方案。它允許您使用相同的建構過程來建立物件的不同表示。
考慮建造一台計算機。電腦可以有各種元件,如 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中文網其他相關文章!