大话设计模式15:抽象工厂模式
目录
大话设计模式:15.抽象工厂模式
抽象工厂模式:提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
TL;DR:工厂方法模式的扩展,工厂方法只用于生成一种产品,而抽象工厂模式可以生成多个产品系列
优点 & 缺点:
- 优点:易于更换产品系列,只需更改初始化即可
- 缺点:像工厂模式一样,增加工厂功能时,需要修改抽象工厂接口及所有具体工厂
改进方案:
- 方案一:使用简单工厂模式,在工厂中,通过字符串和 switch,生成产品,但这种方式存在太多条件判断
- 方案二:使用依赖注入的编程方式,一般由 IoC 容器提供,.NET 技术中可以用反射解决,通过字符串变量和配置文件,即可将程序由编译时转为运行时
Tips:
所有在用简单工厂的地方,都可以考虑用反射技术去除 switch 和 if,解除分支判断带来的耦合