简单工厂模式主要由三部分组成:
下面是一个使用Go语言实现的简单工厂模式示例:
package main
import "fmt"
// 产品接口
type Product interface {
Use() string
}
// 具体产品A
type ConcreteProductA struct{}
func (p *ConcreteProductA) Use() string {
return "Product A"
}
// 具体产品B
type ConcreteProductB struct{}
func (p *ConcreteProductB) Use() string {
return "Product B"
}
// 工厂类
type Factory struct{}
func (f *Factory) CreateProduct(type string) Product {
switch type {
case "A":
return &ConcreteProductA{}
case "B":
return &ConcreteProductB{}
default:
return nil
}
}
func main() {
factory := Factory{}
productA := factory.CreateProduct("A")
fmt.Println(productA.Use())
productB := factory.CreateProduct("B")
fmt.Println(productB.Use())
}
简单工厂模式适用于以下场景:
优点:
缺点:
简单工厂模式是一种比较简单的设计模式,适合于产品种类相对固定的情况。在实际开发中,我们可以根据实际需要选择是否应用此模式。