设计模式探秘-6-抽象工厂方法模式

抽象工厂模式介绍与实践,抽象工厂模式与工厂模式比较

抽象工厂模式

抽象工厂模式:为创建一组相关或相互依赖的对象提供接口,而别无需指定它们的具体类。

抽象工厂模式优点

  1. 封装性,高层模块调用产生对象的接口即可,不需要了解对象的实现类
  2. 对象间约束关系非公开状态

抽象工厂模式缺点

对象扩展困难

使用场景

一组没有任何关系的对象都有相同约束,则可以使用抽象工厂模式

抽象工厂模式注意事项

抽象工厂模式扩展困难时对象横向扩展困难,而纵向扩展是非常容易扩展的。

抽象工厂模式和工厂模式

AbstractFactory模式和Factory模式的区别在于AbstractFactory模式是为创建一组(有多类)相关或依赖的对象提供创建接口,而Factory模式是为一类对象提供创建接口或延迟对象的创建到子类中实现。AbstractFactory模式通常使用Factory模式实现。

工厂方法模式 抽象工厂模式
针对的是一个产品等级结构 针对的是面向多个产品等级结构
一个抽象产品类 多个抽象产品类
可以派生出多个具体产品类 每个抽象产品类可以派生出多个具体产品类
一个抽象工厂类,可以派生出多个具体工厂类 一个抽象工厂类,可以派生出多个具体工厂类
每个具体工厂类只能创建一个具体产品类的实例 每个具体工厂类可以创建多个具体产品类的实例

抽象工厂模式实现

抽象工厂模式类图

参考资料

  1. 设计模式之禅
  2. GoF+23种设计模式解析
  3. http://blog.csdn.net/wyxhd2008/article/details/5597975