简单工厂模式
思路:多个struct实现同一个接口,在外部接口调用的时候,通过传参来表名创建哪一个实例。

缺点:新增一个类型的实例,就要大量修改多处代码。

package design_mode

type ApiInter interface {
    Say(msg string) string
}

type SpeakImpls struct {
}

func (s SpeakImpls) Say(msg string) string {
    return msg
}

type WrangleImpls struct {
    
}

func (a WrangleImpls) Say(msg string) string {
    return msg
}


func NewApiImpls(facType string) ApiInter {
    if facType == "speak" {
        return SpeakImpls{}
    }
    return WrangleImpls{}
}