빌더 패턴은 복잡한 객체를 단계별로 구성하기 위한 유연한 솔루션을 제공하는 창조적인 디자인 패턴입니다. 동일한 구성 프로세스를 사용하여 객체의 다양한 표현을 만들 수 있습니다.
컴퓨터 조립을 고려해 보세요. 컴퓨터에는 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) }
제품(컴퓨터) : 다양한 속성을 가지고 구축될 복합 객체를 나타냅니다.
빌더 인터페이스(ComputerBuilder): 제품의 각 구성 요소를 설정하는 방법을 정의합니다.
Concrete Builder(PCBuilder): 빌더 인터페이스를 구현합니다.
클라이언트 코드: 새 빌더 인스턴스를 생성합니다.
위 내용은 디자인 패턴으로 이동 #Builder의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!