【Go设计模式】2.创建型-简单工厂模式

简介

简单工厂并不属于GoF的23种设计模式,它是开发者认为的一种非常简易的设计模式。

类图

Simple Factory PatternSimple Factory PatternProductConcreteProductAConcreteProductBFactoryCreateProduct(type: String): ProductCreateProduct(type)

实现

type Product interface {

}
type ConcreteProductA struct {
	Product //便于理解
}
type ConcreteProductB struct {
	Product //便于理解
}
type Factory struct {

}
func (fac *Factory) CreateProduct(type string) Product {
	var product Product
	switch type {
		case "ConcreteProductA": product = new(ConcreteProductA)
		case "ConcreteProductB": product = new(ConcreteProductB)
	}
	return product
}
func main() {
	factory := new(Factory)
	concreteProductA := factory.CreateProduct("ConcreteProductA")
	concreteProductA.dosth()
	concreteProductB := factory.CreateProduct("ConcreteProductB")
	concreteProductB.dosth()
}

【Go设计模式】2.创建型-简单工厂模式
https://sheep-in-box.github.io/2024/07/25/【Go设计模式】2-创建型-简单工厂模式/
作者
Sheep
发布于
2024年7月25日
许可协议