在Golang中,工厂模式可以通过使用接口和结构体来实现。下面是一个简单的例子:
首先,定义一个接口,表示产品的抽象:
type Product interface {GetName() stringSetName(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}通过工厂模式,我们可以将对象的创建和使用分离开来,使得代码更加可扩展和灵活。

