建造者模式
一、简介
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
二、代码
package main import "fmt" //电脑对象的建造 type Computer interface { //主板制造 MakeCpu() //键盘制造 MakeKeyBoard() //屏幕制造 MakeScreen() } // 定义一个构建器 type Creator struct { computer Computer } // 创建一个电脑 func (d *Creator) Construct() *Computer { d.computer.MakeCpu() d.computer.MakeKeyBoard() d.computer.MakeScreen() return &d.computer } // 构建一个具体品牌的电脑 type HuaWeiComputer struct { Cpu string KeyBoard string Screen string } func (l *HuaWeiComputer) MakeCpu() { fmt.Println("主板构建中...") l.Cpu = "cpu" } func (l *HuaWeiComputer) MakeKeyBoard() { fmt.Println("键盘构建中...") l.KeyBoard = "keyboard" } func (l *HuaWeiComputer) MakeScreen() { fmt.Println("屏幕构建中...") l.Screen = "screen" } func main() { c := HuaWeiComputer{} d := Creator{computer: &c} computer := d.Construct() fmt.Printf("%+v", *computer) }
完整源代码: https://gitee.com/ncuzhangben/GoStudy/tree/master/go-design-pattern/05-Builder
三:参考资料
1、 https://www.runoob.com/design-pattern/builder-pattern.html
来源:https://www.cnblogs.com/0pandas0/p/12045180.html