目录

大话设计模式15:抽象工厂模式

大话设计模式:15.抽象工厂模式

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

TL;DR:工厂方法模式的扩展,工厂方法只用于生成一种产品,而抽象工厂模式可以生成多个产品系列

抽象工厂模式模式结构图

优点 & 缺点:

  1. 优点:易于更换产品系列,只需更改初始化即可
  2. 缺点:像工厂模式一样,增加工厂功能时,需要修改抽象工厂接口及所有具体工厂

改进方案:

  1. 方案一:使用简单工厂模式,在工厂中,通过字符串和 switch,生成产品,但这种方式存在太多条件判断
  2. 方案二:使用依赖注入的编程方式,一般由 IoC 容器提供,.NET 技术中可以用反射解决,通过字符串变量和配置文件,即可将程序由编译时转为运行时

Tips:

所有在用简单工厂的地方,都可以考虑用反射技术去除 switch 和 if,解除分支判断带来的耦合