简介

工厂方法模式只考虑同一类产品的生产,比如:畜牧场只养动物;电视机厂只生产电视机等。

同种类即同等级,也就是说:工厂方法模式只考虑同等级产品的生产。但是在现实生活中,很多工厂都是综合型工厂,比如:农场既养动物,又种植物;电视机厂既生产电视机,又生产空调或冰箱等。

抽象工厂模式将考虑多等级产品的生产。将同一具体工厂生产的位于不同等级的一组产品称为一个产品族

product-family.gif

在上面的例子中:

抽象工厂模式是一种为访问类提供一个创建一组相关或相互依赖的对象的接口,且访问类无需指定具体产品类就能得到同族的不同等级的产品的模式结构。


角色


UML 类图

http://images.timd.cn/design-pattern/abstract-factory.png


示例代码

https://github.com/tim-chow/DesignPattern/tree/master/AbstractFactory


参考文档