Golang的工廠模式可以應用于以下場景:
以下是一個示例代碼:
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函數中使用工廠函數創建不同類型的動物對象并調用其方法。