04.工厂方法模式【FACTORY METHOD PATTERN】
来源:互联网 发布:巴拉密 知乎 编辑:程序博客网 时间:2024/05/22 15:32
推荐文章:http://www.jellythink.com/archives/62
类图:
类解读:
Factory:定义一个工厂
FactoryA,FactoryB:工厂中的不同的两条生产线。
Product:需要生产的产品类型定义(接口)
ProductA,ProductB:需生产的具体产品
相当于在一个工厂中,创建多条生产流水线,来生产自定义的产品,只是当前的一条生产流水线功能单一(相对于抽象工厂而言)。
实现代码:
#include <iostream>
usingnamespacestd;
classProduct
{
public:
virtualvoidShow()=0;
};
classProductA:publicProduct
{
public:
voidShow()
{
cout<<"I'm ProductA"<<endl;
}
};
classProductB:publicProduct
{
public:
voidShow()
{
cout<<"I'm ProductB"<<endl;
}
};
classFactory
{
public:
virtualProduct*CreateProduct()=0;
};
classFactoryA:publicFactory
{
public:
Product*CreateProduct()
{
returnnewProductA();
}
};
classFactoryB:publicFactory
{
public:
Product*CreateProduct()
{
returnnewProductB();
}
};
intmain(intargc,char*argv[])
{
Factory*factoryA=newFactoryA();
Product*productA=factoryA->CreateProduct();
productA->Show();
Factory*factoryB=newFactoryB();
Product*productB=factoryB->CreateProduct();
productB->Show();
if(factoryA!=NULL)
{
deletefactoryA;
factoryA=NULL;
}
if(productA!=NULL)
{
deleteproductA;
productA=NULL;
}
if(factoryB!=NULL)
{
deletefactoryB;
factoryB=NULL;
}
if(productB!=NULL)
{
deleteproductB;
productB=NULL;
}
return0;
}
0 0
- 04.工厂方法模式【FACTORY METHOD PATTERN】
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式 Factory Method Pattern
- 工厂方法模式(factory method pattern)
- 二、工厂方法模式(Factory Method Pattern)
- 工厂方法模式 The Factory Method Pattern
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)草书
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式( Factory Method Pattern)
- 工厂方法模式【FACTORY METHOD PATTERN 】
- 工厂方法模式(Factory Method Pattern)
- 工厂方法模式(Factory Method Pattern)
- poj2533Longest Ordered Subsequence LIS(优化)
- 如果将synthesize省略,语义特性声明为assign retain copy时,自己实现setter和getter方法
- Linux 文件和目录操作的相关函数
- 五角星
- HDU 1541 Stars (树状数组)
- 04.工厂方法模式【FACTORY METHOD PATTERN】
- Php面向对象 – 类常量
- 有一个NSStirng类型,retain方式声明的name属性的setter方法内部每一行代码的作用?
- HDU 4121 Xiangqi
- poj 2752 Seek the Name, Seek the Fame
- HDU 2089不要62 数位dp
- 用google 实现CSDNblog 搜索
- 基于mapreducer的图算法
- HDU 3555Bomb数位dp