简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在 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。
希望这可以帮助你编写你自己的简单工厂模式!