之前介绍过简单工厂模式、工厂模式,这节介绍下工厂家族的最后一种设计模式--抽象工厂设计模式。
实际上,如果对前两种模式熟练掌握的话,这个相对来说最复杂的设计模式也不难理解,它也可以理解为是在工厂模式基础上的升级。
我们知道,工厂模式将一个类的实例化延迟到子类,具体产品类由具体工厂类来实例化,但这种关系基本是一对一的,也就是说一个抽象工厂类对应一个抽象产品类,多个具体工厂类对应多个具体产品类。归纳来说就是一个工厂族只服务于一个产品族。
抽象工厂模式实现了工厂类与产品类一对多的关系,或者说工厂族与产品族实现了一对多的关系。它们的区别可以用一家工厂来形容,工厂模式就像是这家工厂的一条生产线,而抽象工厂模式就好比整个工厂的所有生产线。