中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

golang工廠模式實現代碼怎么寫

小億
75
2023-10-31 18:55:16
欄目: 編程語言

package main

import ( “fmt” )

// 定義接口 type Product interface { Use() }

// 定義具體產品結構體 type ConcreteProductA struct{}

func (p *ConcreteProductA) Use() { fmt.Println(“使用具體產品A”) }

type ConcreteProductB struct{}

func (p *ConcreteProductB) Use() { fmt.Println(“使用具體產品B”) }

// 定義工廠結構體 type Factory struct{}

// 工廠方法,根據參數創建不同的產品 func (f *Factory) CreateProduct(productType string) Product { switch productType { case “A”: return &ConcreteProductA{} case “B”: return &ConcreteProductB{} default: return nil } }

func main() { // 創建工廠 factory := &Factory{}

// 使用工廠創建產品A
productA := factory.CreateProduct("A")
productA.Use()

// 使用工廠創建產品B
productB := factory.CreateProduct("B")
productB.Use()

}


在上面的代碼中,定義了一個`Product`接口,包含一個`Use`方法。然后定義了兩個具體的產品結構體,`ConcreteProductA`和`ConcreteProductB`,它們都實現了`Product`接口的`Use`方法。

接著定義了一個`Factory`工廠結構體,它有一個`CreateProduct`方法,根據傳入的參數類型,創建不同的產品并返回。

在`main`函數中,首先創建了一個工廠對象`factory`,然后用工廠的`CreateProduct`方法分別創建了產品A和產品B,并調用它們的`Use`方法。

0
宜黄县| 和政县| 宁津县| 西峡县| 循化| 黑龙江省| 尚义县| 聂拉木县| 白水县| 左云县| 遂溪县| 犍为县| 莆田市| 应城市| 拉萨市| 南郑县| 英超| 于田县| 夹江县| 凌云县| 陆川县| 洪湖市| 滁州市| 二连浩特市| 运城市| 和田县| 阳谷县| 龙岩市| 成安县| 南郑县| 辽宁省| 水城县| 搜索| 漳州市| 桃园市| 长乐市| 旬阳县| 民县| 通海县| 宁武县| 铁力市|