一分钟编程--golang编写一个简单工厂模式

62 阅读1分钟

简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在 Go 中,我们可以使用函数来实现简单工厂模式。下面是一个简单的例子,其中我们定义了一个接口和两个结构体,然后使用工厂函数来创建这些结构体的实例。

package main

import "fmt"

type Animal interface {
    Speak() string
}

type Dog struct{}

func (d Dog) Speak() string {
    return "Woof!"
}

type Cat struct{}

func (c Cat) Speak() string {
    return "Meow!"
}

func NewAnimal(animalType string) Animal {
    switch animalType {
    case "dog":
        return Dog{}
    case "cat":
        return Cat{}
    default:
        return nil
    }
}

func main() {
    animal := NewAnimal("dog")
    fmt.Println(animal.Speak())
}

在上面的代码中,我们定义了一个 Animal 接口和两个结构体:Dog 和 Cat。然后我们使用 NewAnimal 工厂函数来创建这些结构体的实例。如果传递给 NewAnimal 的字符串是 “dog”,则返回一个 Dog 实例;如果传递的字符串是 “cat”,则返回一个 Cat 实例。如果传递的字符串不是这两个值之一,则返回 nil。

希望这可以帮助你编写你自己的简单工厂模式!