golang中使用简单工厂模式

工厂模式是了降低类与类之间的耦合度,比如我们想要一个手机,如果我们指定某一个工人为我们生产手机。我们生产这个手机的进度完全取决于这个工人,如果工人请假了,一定会影响我们得到手机的进度。这就是客户和工人的耦合度太高造成的影响。这时候,可以有一个生产手机的工厂,我们不必关系是谁在为我们生产手机,我们说了我们的需求,由工厂指定空闲的工人为我们生产手机,不可能每一个工人都请假了。这样的结构比较健壮。golang中的工厂模式的代码,如下:

package main

import "fmt"

type API interface {
   Say(name string)string
}

type hiAPI struct {}

func (this *hiAPI) Say(name string) string{
   return fmt.Sprintf("Hi,%s",name)
}

type helloAPI struct {}

func (this *helloAPI) Say(name string) string{
   return fmt.Sprintf("Hello,%s",name)
}

func NewAPI(t int)API{
   if t == 1{
      return &hiAPI{}
   }else if t == 2{
      return &helloAPI{}
   }
   return nil
}

func main(){
   t := NewAPI(1)
   fmt.Println(t.Say("美女"))
   s := NewAPI(2)
   fmt.Println(s.Say("帅哥"))
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值