场景
老板:设计一个万能工厂,目前可以生产产品A跟B,以后可能要生产C,D…这些产品都属于同一个产品族
你:好的老板,那就使用抽象工厂模式
方案
产品会随时间推移而增加,这些产品的属性相似,我们可以称为他们是一个产品族,我们使用一个抽象工厂(即能生产同一产品族的万能工厂)解决这个问题,这样我们的代码就可以无限扩展
实现
see:github
package main
import "fmt"
type Product string
type AbstractFactory interface {
createA() Product
createB() Product
}
type Factory struct {
}
func (*Factory) createA() Product {
fmt.Println("生产A")
return Product("A")
}
func (*Factory) createB() Product {
fmt.Println("生产B")
return Product("B")
}
func main() {
fmt.Println("从万能工厂那生产所有产品")
fmt.Println("好的,老板")
var f AbstractFactory
f = &Factory{}
f.createA()
f.createB()
}