go 建造者模式

210次阅读

共计 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 的实例。如此便是建造者模式的实现。

正文完
 
dkp
版权声明:本站原创文章,由 dkp 2023-04-06发表,共计671字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。