一、概念
抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道实际产出的具体产品是什么。
二、模式结构图
三、例子
class ClothesFactory { public: virtual Ups makeUps() = 0; virtual Downs makeDowns() = 0; }; class SpringClothesFactory : public ClothesFactory { public: Ups makeUps() { return new SpringUps(); } Downs makeDowns() { return new SpringDowns(); } }; class AutumnClothesFactory : public ClothesFactory { public: Ups makeUps() { return new AutumnUps(); } Downs makeDowns() { return new AutumnDowns(); } };
四、优缺点
1、优点
a、增加新的具体工厂和产品族很方便,已写好的代码无需修改,满足开闭原则。
b、分离了具体的类。
c、产品族具有约束性,有利于产品的一致性。
2、缺点
a、增加新的产品修改比较麻烦,需要修改抽象工厂和所有的具体工厂类。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/sharing_li/article/details/47211347