Golang的工廠模式可以應(yī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)用其方法。