go-factory工厂模式样例

目录

1、创建工厂模式样例:

2、调用工厂创建对象:


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()
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谷隐凡二

相识便是缘,开启技术大门

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值