亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
富顺县| 镇江市| 丽江市| 弋阳县| 得荣县| 平江县| 芜湖县| 香河县| 搜索| 保靖县| 龙泉市| 屯门区| 涟源市| 达日县| 宿州市| 凌云县| 怀柔区| 鄂托克前旗| 腾冲县| 长泰县| 郴州市| 六枝特区| 文化| 潞城市| 修水县| 襄城县| 蕉岭县| 洛扎县| 东安县| 监利县| 洪湖市| 大宁县| 蓝田县| 湖北省| 长兴县| 乌拉特中旗| 大洼县| 安龙县| 钟山县| 焉耆| 容城县|