根据类名建立类。
这就类似一个工厂,工厂根据产品名来生产产品。
伪代码
switch(产品名)
{
case 'A' : 生产A;break;
case 'B' : 生产B;break;
}
下面是一个简单工厂模式的图

在C++里,我们利用多态,通过建立一个产品的抽象类,然后其他产品都从这个抽象类继承,这样我们就可以用代码写出一个“简单工厂模式”程序了,具体代码如下
#include <iostream>
using namespace std;
class CProduct//产品的抽象接口
{
public:
virtual void info() = 0;
};
class CProductA : public CProduct //实际产品A
{
public:
void info()
{
cout << "this is CProductA" << endl;
}
};
class CProductB : public CProduct //实际产品B
{
public:
void info()
{
cout << "this is CProductB" << endl;
}
};
class CFactory//工厂
{
public:
CProduct* produce(char cName)//根据产品名生产产品
{
switch(cName)
{
case 'A':
return new CProductA();
break;
case 'B':
return new CProductB();
break;
default:
break;
}
}
};
int main()
{
CFactory factory;
CProduct *product = factory.produce('A');
product->info();
return 0;
}