Golang设计模式——15策略模式
工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露对象创建的逻辑。在 Golang 中,可以使用工厂函数来实现工厂模式。工厂函数是一个返回接口类型的函数,该接口表示所需对象的抽象类型。具体的对象类型由工厂函数内部的逻辑决定。以下是一个使用 Golang 实现工厂模式的示例代码:
```
package main
import "fmt"
type Product interface {
GetName() string
}
type ConcreteProductA struct{}
func (p *ConcreteProductA) GetName() string {
return "Product A"
}
type ConcreteProductB struct{}
func (p *ConcreteProductB) GetName() string {
return "Product B"
}
func CreateProduct(productType string) Product {
switch productType {
case "A":
return &ConcreteProductA{}
case "B":
return &ConcreteProductB{}
default:
return nil
}
}
func main() {
productA := CreateProduct("A")
fmt.Println(productA.GetName())
productB := CreateProduct("B")
fmt.Println(productB.GetName())
}
```
在上面的示例代码中,我们定义了一个 `Product` 接口和两个具体的产品类型 `ConcreteProductA` 和 `ConcreteProductB`。我们还定义了一个 `CreateProduct` 工厂函数,该函数根据传入的参数返回不同的产品类型。在 `main` 函数中,我们使用 `CreateProduct` 函数创建了两个不同的产品,并调用了它们的 `GetName` 方法。
这就是使用 Golang 实现工厂模式的基本方法。