标签:ace 内容 ict mic cto get pack 建造者模式 fun
造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生成器模式。
package builder
import(
"fmt"
)
type Builder interface {
Step1()
Step2()
Step3()
}
type Xiaomi struct{
Function string
}
func (this *Xiaomi)Step1(){
fmt.Println("小米Step1")
this.Function += "[打电话]"
}
func (this *Xiaomi)Step2(){
fmt.Println("小米Step2")
this.Function += "[游戏]"
}
func (this *Xiaomi)Step3(){
fmt.Println("小米Step3")
this.Function += "[便宜]"
}
func (this *Xiaomi)GetFunction()string{
fmt.Println( this.Function)
return this.Function
}
type Huawei struct{
Function string
}
func (this *Huawei)Step1(){
fmt.Println("华为Step1")
this.Function += "[打电话]"
}
func (this *Huawei)Step2(){
fmt.Println("华为Step2")
this.Function += "[拍照]"
}
func (this *Huawei)Step3(){
fmt.Println("华为Step3")
this.Function += "[贵]"
}
func (this *Huawei)GetFunction()string{
fmt.Println( this.Function)
return this.Function
}
type Drictor struct{
bui Builder
}
func NewConstruct(bui Builder)*Drictor{
return &Drictor{
bui : bui,
}
}
func(this *Drictor)Consturct(){
this.bui.Step1()
this.bui.Step2()
this.bui.Step3()
}
xm := builder.Xiaomi{}
drictor:= builder.NewConstruct(&xm)
drictor.Consturct()
xm.GetFunction()
hw := builder.Huawei{}
drictor2 := builder.NewConstruct(&hw)
drictor2.Consturct()
hw.GetFunction()

不同的建造者同样的步骤最终创建的结果不一样
标签:ace 内容 ict mic cto get pack 建造者模式 fun
原文地址:https://www.cnblogs.com/flycc/p/12628434.html