|
//Factory Pattern
#include <iostream>
#include <string>
using namespace std;
class Product
{
public:
~Product()
{
}
virtual void Show() const=0;
protected:
Product()
{
//cout<<"Product构造函数"<<endl;
}
};
class CreateProductA:public Product
{
public:
CreateProductA()
{
cout<<"创建产品A"<<endl;
}
~CreateProductA()
{
}
void Show(void) const
{
cout<<"显示产品A"<<endl;
}
};
class CreateProductB:public Product
{
public:
CreateProductB()
{
cout<<"创建产品B"<<endl;
}
~CreateProductB()
{
}
void Show(void) const
{
cout<<"显示产品B"<<endl;
}
};
class Factory
{
public:
~Factory()
{
}
virtual Product * CreateProduct(char Data) =0;
protected:
Factory()
{
}
};
class ConcreteFactory:public Factory
{
public:
ConcreteFactory( )
{
}
~ConcreteFactory()
{
}
Product * CreateProduct(char Data)
{
switch(Data)
{
case 'A':
return new CreateProductA();
case 'B':
return new CreateProductB();
default:
return 0;
}
};
};
int main(void)
{
Factory *fac=new ConcreteFactory();
Product *proA=fac->CreateProduct('A');
proA->Show();
Product *proB=fac->CreateProduct('B');
proA->Show();
return 0;
}
|
本文通过C++代码示例介绍了工厂模式的基本应用,展示了如何通过抽象基类定义产品接口,并由具体工厂来决定创建哪种具体产品实例。
1591

被折叠的 条评论
为什么被折叠?



