目录
1、创建工厂模式样例:
package go_model
import "fmt"
type Animal interface {
Run()
Eat()
}
type Monkey struct {
name string
age int
}
func (*Monkey) Eat(){
fmt.Println("猴子吃香蕉")
}
func (*Monkey) Run(){
fmt.Println("猴子跑起来")
}
type Cat struct {
name string
age int
}
func (*Cat) Eat(){
fmt.Println("猫吃猫粮")
}
func (*Cat) Run(){
fmt.Println("猫跑起来")
}
func NewAnimal(t string) Animal{
//具体逻辑根据实际使用调整,主要就是通过这个方法进行创建对象
switch t {
case "monkey":
return &Monkey{}
case "cat":
return &Cat{}
}
return nil
}
2、调用工厂创建对象:
package main
import(
animalfactory "go/test/go-model"
)
func main() {
//创建对象并使用方法
cat := animalfactory.NewAnimal("cat")
cat.Run()
cat.Eat()
monkey := animalfactory.NewAnimal("monkey")
monkey.Run()
monkey.Eat()
}