cxfans
11/26/2019 - 2:05 PM

建造者模式;生成器模式;建造模式

建造者模式;生成器模式;建造模式

/*
	Builder Pattern
	建造者模式;生成器模式;建造模式
	构建器模式将复杂对象的构造与其表示形式分开,
	以便同一构造过程可以创建不同的表示形式。

*/

package main

type Speed float64

const (
	MPH Speed = 1
	KPH       = 1.60934
)

type Color string

const (
	BlueColor  Color = "blue"
	GreenColor       = "green"
	RedColor         = "red"
)

type Wheels string

const (
	SportsWheels Wheels = "sports"
	SteelWheels         = "steel"
)

type Interface interface {
	Drive() error
	Stop() error
}

type Builder interface {
	Color(Color) Builder
	Wheels(Wheels) Builder
	TopSpeed(Speed) Builder
	Build() Interface
}