package main import ( “fmt” ) // 定义接口 type Product interface { Use
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`方法。
--结束END--
本文标题: golang工厂模式实现代码怎么写
本文链接: https://www.lsjlt.com/news/570507.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0