定义
为创建一组相关或者相互依赖的 对象提供一个接口,而且无需指定它们的具体类
通用模版
产品相关类:
具体到产品实现(这里实现两种大类产品A和B):
工厂类:
具体实现了两个工厂类:
场景类:
场景类中没有任何一个方法与实现类有关系,对于一个产品来说,我们只要知道它的工厂方法就可以直接生产一个产品对象,无需关系它的实现类。
应用场景
- 一个对象族都有相同的约束,则可以使用抽象工厂模式。(例如:使用此模式实现不同操作平台下的软件)
注意事项
抽象工厂模式的缺点是产品族扩展困难,而不是产品等级。增加一个等级只需要增加一个工厂类。