一、抽象工程模式的定义
抽象工厂模式(Abstract Factory Pattern)是一种比较常用的模式,其定义如下
Provide an interface for creating families of related related or dependent object without specifying their concrete classes.(为创建一组相关或者相互依赖的对象提供一个接口,而且无须指定他们的具体类)
二、抽象工厂模式的应用
1、抽象工厂模式的优点
封装性
每个产品的实现类不是高层模块关心的,它要关心的是什么?是接口,是抽象,它不关心对象是如何创建出来的,这由谁负责呢?工厂类,只要知道工厂类是谁。我就能创建一个需要的对象,省时省力,优秀的设计就该如此
产品族内的约束为非公开状态
例如,生产男女比例问题上,每生词1个女性,就同时产生1.2个男性,这样的生成过程对吊用工厂类的高层模块是不透明的,他不需要知道这个约束
2、抽象工厂模式的缺点
抽象工厂模式的最大缺点就是产品族扩展非常困难,为什么这么说呢?如果增加一个产品c,也就是原来的产品家族由原来的两个增加到3个,抽象类AbsratractCreateor 要增加一个方法createProductC(),然后两个实现类都要修改,这严重的影响了开闭原则
3、抽象工厂模式的应用场景
抽象工厂模式的使用场景定义非常简单,一个对象族(或是一组没有任何关系的对象)都有相同约束,则可以适用抽象工厂模式,
网友评论