创建者模式

将一个复杂对象的构建分离成多个简单对象的构建组合

package build

type Builder interface {
	Part1()
	Part2()
	Part3()
}

type Director struct {
    builder Builder
}

func NewDirector(builder Builder) *Director {
    return &Director {builder:builder}
}

func(d * Director) Construct() {
	d.builder.Part1()
	d.builder.Part2()
	d.builder.Part3()
}

type Build1 struct {
	result string
}

func(b * Build1) Part1() {
    b.result += "1"
}

func(b * Build1) Part2() {
	b.result += "2"
}

func(b * Build1) Part3() {
	b.result += "3"
}

func(b * Build1) GetResult() string{
	return b.result
}

type Builder2 struct {
	result int
}

func (b *Builder2) Part1() {
	b.result += 1
}

func (b *Builder2) Part2() {
	b.result += 2
}

func (b *Builder2) Part3() {
	b.result += 3
}

func (b *Builder2) GetResult() int {
	return b.result
}

最后更新于