设计模式-抽象工厂模式
来源:互联网 发布:张无忌实力知乎 编辑:程序博客网 时间:2024/05/19 09:47
创建型设计模式-抽象工厂模式
模式描述:定义一个用于创建相关或相互依赖对象的接口,而不指定他们的具体实现类。
代码实现(创建了成产P1、P2系列产品对象的借口)
//C++
//产品基类
//P1系列产品
class P1
{
public: virtual void productP1()=0;
};
//P2系列产品
class P2
{
public: virtual void productP2()=0;
};
//P1系列产品A类
class P1A: public P1
{
public: void productP1()
{
cout<<"P1系列产品A "<<endl;
}
};
//P1系列产品B类
class P1B: public P1
{
public: void productP1()
{
cout<<"P1系列产品B "<<endl;
}
};
//P2系列产品A类
class P2A: public P2
{
public: void productP2()
{
cout<<"P2系列产品A "<<endl;
}
};
//P2系列产品B类
class P2B: public P2
{
public: void productP2()
{
cout<<"P2系列产品B "<<endl;
}
};
//工厂接口(创建P1、P2系列相关产品对象的接口)
class Factory
{
public:
virtual P1* createProductP1()=0;
virtual P2* createProductP2()=0;
};
//生产P1、P2系列产品A的工厂类
class FactoryA:Factory
{
public:
P1* createProductP1(){return new P1A();}
P2* createProductP2(){return new P2A();}
};
//生产P1、P2系列产品B的工厂类
class FactoryB:Factory
{
public:
P1* createProductP1(){return new P1B();}
P2* createProductP2(){return new P2B();}
};
模式描述:定义一个用于创建相关或相互依赖对象的接口,而不指定他们的具体实现类。
代码实现(创建了成产P1、P2系列产品对象的借口)
//C++
//产品基类
//P1系列产品
class P1
{
public: virtual void productP1()=0;
};
//P2系列产品
class P2
{
public: virtual void productP2()=0;
};
//P1系列产品A类
class P1A: public P1
{
public: void productP1()
{
cout<<"P1系列产品A "<<endl;
}
};
//P1系列产品B类
class P1B: public P1
{
public: void productP1()
{
cout<<"P1系列产品B "<<endl;
}
};
//P2系列产品A类
class P2A: public P2
{
public: void productP2()
{
cout<<"P2系列产品A "<<endl;
}
};
//P2系列产品B类
class P2B: public P2
{
public: void productP2()
{
cout<<"P2系列产品B "<<endl;
}
};
//工厂接口(创建P1、P2系列相关产品对象的接口)
class Factory
{
public:
virtual P1* createProductP1()=0;
virtual P2* createProductP2()=0;
};
//生产P1、P2系列产品A的工厂类
class FactoryA:Factory
{
public:
P1* createProductP1(){return new P1A();}
P2* createProductP2(){return new P2A();}
};
//生产P1、P2系列产品B的工厂类
class FactoryB:Factory
{
public:
P1* createProductP1(){return new P1B();}
P2* createProductP2(){return new P2B();}
};
- 抽象工厂设计模式
- 设计模式-----抽象工厂
- 抽象工厂设计模式
- 抽象工厂设计模式
- 抽象工厂设计模式
- 设计模式 抽象工厂
- 设计模式--抽象工厂
- 设计模式--抽象工厂
- 设计模式 抽象工厂
- 设计模式-抽象工厂
- 设计模式-> 抽象工厂
- 抽象工厂设计模式
- 设计模式--抽象工厂
- 【设计模式】抽象工厂
- 设计模式---抽象工厂
- 【设计模式-抽象工厂】
- 设计模式-抽象工厂
- 设计模式--抽象工厂
- 《Orange’s 一个操作系统的实现》1.搭建操作系统开发环境
- MongoDB的初学五:查找表达式
- 大批量数据删除的几种方法PK
- Java线程:并发协作-生产者消费者模型
- HadoopSourceAnalyse --- Mapreduce ApplicationMaster TaskAttempt FSM
- 设计模式-抽象工厂模式
- (my)eclipse工作空间中删除项目重新导入会遇到项目已经存在的问题
- NASM中文手册
- MongoDB的初学六:索引
- Linux下Android手机的真机调试配置
- mongodb入门-11 更新1
- 《Orange’s 一个操作系统的实现》3.保护模式1----pm.inc分析
- 公子王孙把扇摇
- VXI和PXI的区别