共计 671 个字符,预计需要花费 2 分钟才能阅读完成。
概念
建造者模式,又称生成器模式。在建造者模式中,通过一个统一的建造过程接口,以及一个具体的建造者实现,即可构造出一个完整的产品对象。建造者负责初始化产品的各个部件,并在产品构造完成后将其返回给客户端。客户端只需要关心结果即可,而不需要关心构造的过程。
下面是一个基于 Go 语言的建造者模式的示例代码:
代码示例
type CarBuilder struct {
wheel string
engine string
}
func (c CarBuilder) setWheel(wheel string) CarBuilder {
c.wheel = wheel
return c
}
func (c CarBuilder) setEngine(engine string) CarBuilder {
c.engine = engine
return c
}
func (c CarBuilder) build() Car {
return &Car{c}
}
type Car struct {
builder *CarBuilder
}
func (c *Car) run() {
fmt.Println("run")
}
func main() {
car := (&CarBuilder{}).setEngine(" 宝马 ").setWheel(" 倍耐力 ").build()
car.run()
}
在上面的例子中,我们定义了一个 CarBuilder 汽车的建造者和一个我们要构造的对象 -- 汽车的结构体 Car。
我们通过给 CarBuilder 链式的设置属性,最终在 build 方法中,将这个建造者传进 Car 结构体的 builder 属性中,并返回 Car 的实例。如此便是建造者模式的实现。