[05]Go设计模式:建造者模式(Builder Pattern)
Posted 0pandas0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[05]Go设计模式:建造者模式(Builder Pattern)相关的知识,希望对你有一定的参考价值。
建造者模式
一、简介
建造者模式(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
以上是关于[05]Go设计模式:建造者模式(Builder Pattern)的主要内容,如果未能解决你的问题,请参考以下文章