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

Go 设计模式--工厂模式

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

基于简单的工厂模式进行修改,不再设计一个按钮工厂类来统一负责所有产品的创建,而是将具体按钮的创建过程交给专门的工厂子类去完成。不同的子工厂负责创建不同的产品(实例)

package factory

import(
	"fmt"
)

//玩具工厂
type ToyFactory interface{
	Create()Toy //制造功能,返回一个玩具
}

//所有玩具都有一个功能
type Toy interface{
	Speak() //都会说话,但是每种玩具说的话不一样
}

//车间1 可以制作玩具猫,就叫猫工厂吧
type CatFactory struct {

}

//玩具猫模型
type Cat struct {

}

//玩具猫会说话
func (this *Cat)Speak(){
	fmt.Println("hello,I am a Cat...")
}

//车间1 制作玩具猫的方法
func (this *CatFactory)Create() Toy {
	return &Cat{}
}

//车间2 可以制作玩具狗,就叫狗工厂吧
type DogFactory struct{

}

//狗模具
type Dog struct {

}

//狗也会说话
func (this *Dog)Speak(){
	fmt.Println("hello, i am a Dog...")
}

//车间2 制作玩具狗的方法
func (this *DogFactory)Create() Toy {
	return &Dog{}
}

  

	cat := &factory.CatFactory{} //进入猫工厂
	cat.Create().Speak() //制作猫猫,说话试音

	dog := &factory.DogFactory{} //进入狗工厂
	dog.Create().Speak() //制作小狗,说话试音

  

 


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Go redis 分布式锁发布时间:2022-07-10
下一篇:
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