意图
抽象工厂模式提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类。
适用性
一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。
结构
从图上可以看出,抽象工厂模式相比工厂模式,对产品类进行了进一步的抽象,等于是每个工厂能够生产一系列产品,不同的工厂生产不同系列的产品。主要该是有三个元素,1、client(调用工厂);2、工厂类(生成者);3、产品类
代码示例
|
|
特征说明
1、工厂类实现统一的接口,每个工厂类对应一个系列的产品
2、每个系列的产品实现自己系列的接口
3、每一个系列的产品都是放在一起使用的。
参考文献
1.设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
2.23种设计模式
3.PHP设计模式笔记:使用PHP实现抽象工厂模式