抽象工厂模式和工厂模式从字面上来看就有必然的联系,他们都是创建型模式。总结来说,工厂模式(factory pattern)只是个小工厂,只提供一层接口的实现类的输出,而抽象工厂模式(abstract factory pattern)是工厂模式的进一步升级,可以上升到两层以上的工厂模式继承,是工厂的工厂。一计算机来说,工厂模式可以是不同型号显示器,CPU或者网卡的提供者,而抽象工厂模式是显示器工厂、CPU工厂和网卡工厂的工厂。可以通过抽象工厂来获得CPU工厂,进而获得某个型号的CPU。整个依赖关系的类图如下:
如上所示,一个cpuFactory和NetcardFactory就是一个工厂模式,而FactoryProducer则是可以得到cpuFacory和NetcardFactory的工厂,如此而已。