1. 意图
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
2. 结构
3. 5种参与者
-
抽象工厂类(AbstractFactory)
声明一个创建抽象产品对象的操作接口 -
具体工厂类(ConcreteFactory)
实现创建具体产品对象的操作 -
抽象产品类(AbstractPoduct)
为一类产品声明一个接口 -
具体产品类(ConcreteProduct)
定义一个将被相应的具体工厂创建的产品对象
实现AbstractPoduct接口 -
Client
仅使用由AbstractFactory和AbstractProduct类声明的接口
4. go代码实现
package main
import "fmt"
// 抽象产品类--为一类产品声明一个接口