golang のファクトリーパターンの実装方法

Go言語では、インターフェイスと構造体を利用してファクトリーパターンを実現できます。以下に簡単な例を示します。

まず、抽象化された製品を表すインターフェースを定義します:

type Product interface {
GetName() string
SetName(name string)
}

続いて、具体的な製品を表す構造体を定義します。

type ConcreteProduct struct {
name string
}
func (p *ConcreteProduct) GetName() string {
return p.name
}
func (p *ConcreteProduct) SetName(name string) {
p.name = name
}

次に、ファクトリーインターフェイスを定義します

type Factory interface {
CreateProduct() Product
}

次に、具体的なファクトリの実装です。

type ConcreteFactory struct{}
func (f *ConcreteFactory) CreateProduct() Product {
return &ConcreteProduct{}
}

そして最後に、工場を利用して製造が行われます。

func main() {
factory := &ConcreteFactory{}
product := factory.CreateProduct()
product.SetName("Product A")
fmt.Println(product.GetName()) // 输出:Product A
}

ファクトリーパターンを活用すれば、オブジェクトの生成と利用を分離でき、コードの拡張性と柔軟性が向上します。

bannerAds