设计模式-创建型模式-抽象工厂
2013-05-12 22:42
471 查看
具体实现
//AbstarctProductA //生产红豆冰激凌 //红豆冰激凌 class IHongDou_Ice{ public: //IHongDou_Ice(){}; virtual ~IHongDou_Ice(){} }; //绿豆冰激淋 class ILvDou_Ice{ public: virtual ~ILvDou_Ice(){} }; //具体实现。 //为了方便直接将cpp和在一起了 //具体实现分开,减少编译依赖 //具体的A工厂的A口味红豆 class HongDouIce_A : public IHongDou_Ice{ public: HongDouIce_A(){} virtual ~HongDouIce_A(){} }; //具体的A工厂的A口味绿豆 class LvDouIce_A : public ILvDou_Ice{ public: LvDouIce_A(){} virtual ~LvDouIce_A(){} }; //具体的B工厂的B口味红豆 class HongDouIce_B : public IHongDou_Ice{ public: HongDouIce_B(){} virtual ~HongDouIce_B(){} }; //具体的B工厂的B口味绿豆 class LvDouIce_B : public ILvDou_Ice{ public: LvDouIce_B(){} virtual ~LvDouIce_B(){} };
#include "IIce.h" //生产冰激淋 //AB冰激凌总厂 class IABIceFactory{ public: virtual ~IABIceFactory(){}; virtual IHongDou_Ice* HongDou_Ice() = 0; //生产红豆冰激凌 virtual ILvDou_Ice* LvDou_Ice() = 0; //生产绿豆冰激凌 }; //我将具体实现类放在了同一个h中 //具体实现需要分开 //减少编译依赖 //A口味冰激凌工厂 class HongDouA_IceFactory : public IABIceFactory{ public: HongDouA_IceFactory(){} virtual IHongDou_Ice* HongDou_Ice(){ return new HongDouIce_A(); } //生产A口味的红豆冰激凌 virtual ILvDou_Ice* LvDou_Ice(){ return new LvDouIce_A(); } //生产A口味的绿豆冰激淋 virtual ~HongDouA_IceFactory(){} }; //B口味冰激凌工厂 class ILvDouB_IceFactory : public IABIceFactory{ public: ILvDouB_IceFactory(){} virtual IHongDou_Ice* HongDou_Ice(){ return new HongDouIce_B(); } //生产A口味的红豆冰激凌 virtual ILvDou_Ice* LvDou_Ice(){ return new LvDouIce_B(); } //生产A口味的绿豆冰激淋 virtual ~ILvDouB_IceFactory(){} };
缺点如图看到的
创建的AbstractFacetory只能创建绿豆和红豆,如果想添加更多的,就要从新增加接口和编译。
相关文章推荐
- 一起来学设计模式-----创建型模式之抽象工厂
- 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- PHP中的设计模式-创建型-抽象工厂
- 设计模式-创建型03-抽象工厂
- 【设计模式】创建型模式-抽象工厂
- java设计模式--创建型模式--抽象工厂
- Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂)
- 设计模式-创建型-抽象工厂
- 设计模式笔记--创建型模式之一 抽象工厂
- 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- 设计模式--创建型--抽象工厂
- 设计模式二:abstract factory 抽象工厂——对象创建型模式
- 创建型设计模式(简单工厂,工厂,抽象工厂与单例模式
- 【转】设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- 二十三种设计模式之创建型模式之抽象工厂
- 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- 设计模式理解(一)创建型——工厂、抽象工厂
- 【23种设计模式】创建型模式 > 三个工厂模式(简单工厂、抽象工厂、工厂方法)
- 设计模式-创建型模式:抽象工厂 AbstractFactory
- 3、设计模式__创建型__抽象工厂