golang でファクトリーパターンを実装するコードの書き方

package main

import “fmt”

インターフェースの定義

具体製品構造体を定義する

func (p *ConcreteProductA) Use() {
fmt.Println(“具体的な製品Aを使用します”)
}

type ConcreteProductB struct{}

func (p *ConcreteProductB) Use() { fmt.Println(“コンクリート製品 B を使用しています”) }

ファクトリー構造体を定義する

`引数に応じて異なる製品を生成するファクトリメソッド`

ファクトリ作成
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`方法。
bannerAds