创建者模式
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
}最后更新于