溫馨提示×

golang工廠模式怎么應(yīng)用

小億
75
2023-10-23 10:55:12
欄目: 編程語言

Golang的工廠模式可以應(yīng)用于以下場景:

  1. 創(chuàng)建對象時需要根據(jù)不同的條件返回不同的具體對象實例。
  2. 需要隱藏對象創(chuàng)建的具體過程,只暴露一個工廠方法給外部調(diào)用。
  3. 需要通過一個共享的工廠來創(chuàng)建多個相似的對象。

以下是一個示例代碼:

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 "喵喵喵"
}

// 定義工廠函數(shù),根據(jù)傳入的參數(shù)返回相應(yīng)的具體對象實例
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接口和兩個具體的實現(xiàn)類Dog和Cat。然后通過工廠函數(shù)AnimalFactory根據(jù)傳入的參數(shù)返回相應(yīng)的具體對象實例。最后在main函數(shù)中使用工廠函數(shù)創(chuàng)建不同類型的動物對象并調(diào)用其方法。

0