关于设计模式:设计模式简单工厂模式

工程目录

factory.go

package Factory

import "fmt"

type Factory interface {
    Generate()
}

type Phone struct {

}

type Computer struct {

}

func (p *Phone) Generate(){
    fmt.Println("生产了一部手机")
}

func (c *Computer) Generate() {
    fmt.Println("生产了一台电脑")
}

func NewFactory (name string) Factory {
    switch name {
    case "phone":
        return &Phone{}
    case "computer":
        return &Computer{}
    }
    return nil
}

factory_test.go

package Factory

import "testing"

func TestNewFactory(t *testing.T) {
    NewFactory("phone").Generate()
    NewFactory("computer").Generate()
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理