设计模式——简单工厂

2020-10-27  本文已影响0人  DevilRoshan

什么是简单工厂?

简单工厂模式又叫静态工厂方法模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。比如,一台咖啡机就可以理解为一个工厂模式,你只需要按下想喝的咖啡品类的按钮(摩卡或拿铁),它就会给你生产一杯相应的咖啡,你不需要管它内部的具体实现,只要告诉它你的需求即可。

实现

type CoffeeMaker interface {
    MakeCoffee()
}

type LatteMaker struct {
    Name string
}

func (this LatteMaker)MakeCoffee() {
    fmt.Println("这里做拿铁咖啡!!!", this.Name)
}

type MochaMaker struct {
    Name string
}

func (this MochaMaker)MakeCoffee() {
    fmt.Println("这里做摩卡咖啡!!!", this.Name)
}

// 简单工厂
func NewCoffeeMaker(name string) CoffeeMaker {
    switch name {
    case "Latte":
        return &LatteMaker{Name:name}
    case "Mocha":
        return &MochaMaker{Name:name}
    }
    return nil
}
func TestNewCoffeeMaker (*testing.T) {
    NewCoffeeMaker("Latte").MakeCoffee()
    NewCoffeeMaker("Mocha").MakeCoffee()
}
// === RUN   TestNewCoffeeMaker
// 这里做拿铁咖啡!!! Latte
// 这里做摩卡咖啡!!! Mocha
// --- PASS: TestNewCoffeeMaker (0.00s)
// PASS

优点:

缺点:

适用场景

上一篇 下一篇

猜你喜欢

热点阅读