91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
肇庆市| 东城区| 新沂市| 洛南县| 攀枝花市| 布尔津县| 宕昌县| 潼南县| 集贤县| 平果县| 综艺| 新安县| 凤翔县| 姜堰市| 上林县| 宾川县| 彰化县| 谢通门县| 普兰店市| 东辽县| 方正县| 隆化县| 呼和浩特市| 临漳县| 伊春市| 宜州市| 韶关市| 二连浩特市| 教育| 息烽县| 蒙城县| 肥乡县| 余庆县| 铜鼓县| 时尚| 石城县| 贵德县| 启东市| 巴南区| 康乐县| 昌吉市|