golang

golang工厂模式怎么应用

小亿
75
2023-10-23 10:55:12
栏目: 编程语言

Golang的工厂模式可以应用于以下场景:

  1. 创建对象时需要根据不同的条件返回不同的具体对象实例。
  2. 需要隐藏对象创建的具体过程,只暴露一个工厂方法给外部调用。
  3. 需要通过一个共享的工厂来创建多个相似的对象。

以下是一个示例代码:

package main

import "fmt"

// 定义一个接口
type Animal interface {
	Sound() string
}

// 定义具体的狗类
type Dog struct{}

func (d Dog) Sound() string {
	return "汪汪汪"
}

// 定义具体的猫类
type Cat struct{}

func (c Cat) Sound() string {
	return "喵喵喵"
}

// 定义工厂函数,根据传入的参数返回相应的具体对象实例
func AnimalFactory(animalType string) Animal {
	switch animalType {
	case "dog":
		return Dog{}
	case "cat":
		return Cat{}
	default:
		return nil
	}
}

func main() {
	dog := AnimalFactory("dog")
	fmt.Println(dog.Sound()) // 输出:汪汪汪

	cat := AnimalFactory("cat")
	fmt.Println(cat.Sound()) // 输出:喵喵喵
}

在上述示例中,我们定义了一个Animal接口和两个具体的实现类Dog和Cat。然后通过工厂函数AnimalFactory根据传入的参数返回相应的具体对象实例。最后在main函数中使用工厂函数创建不同类型的动物对象并调用其方法。

0
看了该问题的人还看了