抽象工厂
使用工厂方法模式足以应付我们可能遇到的大部分业务需求。
但是当产品种类非常多时,就会出现 大量的与之对应的工厂类,这不应该是我们所希望的。所以建议在这种情况下使用简单工厂模式与工厂 方法模式相结合的方式来减少工厂类:
即
- 对于产品树上类似的种类(一般是树的叶子中互为兄弟的)使用简单工厂模式来实现
- 如果产品树上涉及多个产品族,则可以使用抽象工厂模式
下面我们来详细看一下抽象工厂:
概念
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
首先我们要理解产品族和产品等级:
-
产品族:一个品牌下面的所有产品;例如奥迪下面的商务型、MINI型称为华为的产品族;
-
产品等级:多个品牌下面的同种产品;例如奥迪和宝马下面的各种商务车型,称为一个产品等级;
抽象工厂模式的各个角色和工厂方法的如出一辙: