golang工厂模式实现代码怎么写

   2025-02-15 4500
核心提示:package mainimport (“fmt”)// 定义接口type Product interface {Use()}// 定义具体产品结构体type ConcreteProductA struct{}

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{}

// 使用工厂创建产品AproductA := factory.CreateProduct("A")productA.Use()// 使用工厂创建产品BproductB := factory.CreateProduct("B")productB.Use()

}

在上面的代码中,定义了一个`Product`接口,包含一个`Use`方法。然后定义了两个具体的产品结构体,`ConcreteProductA`和`ConcreteProductB`,它们都实现了`Product`接口的`Use`方法。接着定义了一个`Factory`工厂结构体,它有一个`CreateProduct`方法,根据传入的参数类型,创建不同的产品并返回。在`main`函数中,首先创建了一个工厂对象`factory`,然后用工厂的`CreateProduct`方法分别创建了产品A和产品B,并调用它们的`Use`方法。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言