Go 实现简单工厂模式

简单工厂模式

又称为静态工厂方法,它属于类创建型模式

简单工厂模式的要点

当需要什么时,只需要传入一个正确的参数,就可以获取到你所需要的对象,不需要知道它的创建细节

什么时候需要简单工厂模式?

1、创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。
2、客户端只知道传入工厂类的参数,对于如何创建对象不关心,只需要知道类型对应的参数即可。

案例演示
1、背景

我去奶茶店买奶茶。

2、背景解析

我 ==> 客户端 ==> 我的目标 ==> 要买奶茶(我不关心奶茶是怎么做的,是谁做的,我只关心最终我是要拿到奶茶)

奶茶店 ==> 工厂 ==> 根据客人(客户端)的指令要求制作奶茶给他

3、根据以上进行代码编写
定义奶茶店

// 奶茶店(奶茶店肯定有很多种奶茶的了)
type naiChaFactory interface {
	// 得到一杯奶茶的方法
	getNaiCha()
}

具体奶茶的实现1

// 珍珠奶茶(奶茶具体的实现)
type zhenZhuNaiCha struct {
}

func (c zhenZhuNaiCha) getNaiCha() {
	fmt.Println("往杯中倒入少许牛奶,加入珍珠...这样一杯珍珠奶茶就做完了!!!")
}

具体奶茶的实现2

// 芋泥波波奶茶(奶茶具体的实现)
type yuNiBoBoCha struct {
}

func (y yuNiBoBoCha) getNaiCha() {
	fmt.Println("往杯中倒入少许牛奶,加入芋泥...这样一杯芋泥波波奶茶就做完了!!!")
}

我去奶茶店买奶茶(工厂方法)
// 工厂方法(去奶茶店买奶茶)
func buyNaiCha(a int) naiChaFactory {
	if a == 1 {
		return zhenZhuNaiCha{}
	} else if a == 2 {
		return yuNiBoBoCha{}
	}
	return nil
}
运行结果
func main() {

	cha := buyNaiCha(1)
	cha.getNaiCha()
	fmt.Println()
	cha = buyNaiCha(2)
	cha.getNaiCha()

}

往杯中倒入少许牛奶,加入珍珠…这样一杯珍珠奶茶就做完了!!!

往杯中倒入少许牛奶,加入芋泥…这样一杯芋泥波波奶茶就做完了!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值