社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
抽象工厂类(AbstractFactory)
声明一个创建抽象产品对象的操作接口
具体工厂类(ConcreteFactory)
实现创建具体产品对象的操作
抽象产品类(AbstractPoduct)
为一类产品声明一个接口
具体产品类(ConcreteProduct)
定义一个将被相应的具体工厂创建的产品对象
实现AbstractPoduct接口
Client
仅使用由AbstractFactory和AbstractProduct类声明的接口
package main
import "fmt"
// 抽象产品类--为一类产品声明一个接口
type AbstractProduct interface {
SaveProduct()
}
// 抽象工厂类--声明一个创建抽象产品对象的操作接口
type AbstractFactory interface {
CreateAbstractProduct() AbstractProduct
}
// 具体产品类--定义一个将被相应的具体工厂创建的产品对象
type ConcreteProduct struct{}
func (*ConcreteProduct) SaveProduct() { // 实现AbstractPoduct接口
fmt.Println("Product is created")
}
// 具体工厂类--实现创建具体产品对象的操作
type ConcreteFactory struct{}
func (*ConcreteFactory) CreateConcreteProduct() AbstractProduct {
return &ConcreteProduct{}
}
[参考文档1]《设计模式》-机械工业出版社
3.1节 ABSTRACT FACTORY(抽象工厂)——对象创建型模式
参考文档2
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!