• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[05]Go设计模式:建造者模式(Builder Pattern)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

建造者模式

一、简介

建造者模式(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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go 测试单个方法发布时间:2022-07-10
下一篇:
Ubuntu 18.04安装Vscode的go插件发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap