关于Simple Factory模式的实例C++实现:
#include <iostream>
using namespace std;
class Car
{
public:
virtual char *getInfo()=0;
};
class BMW:public Car
{
char *getInfo()
{
return "BMW";
}
};
class Benz:public Car
{
public:
char *getInfo()
{
return "Benz";
}
};
class CarFactory
{
public:
static Car *getCar(char *name)
{
if(name=="BMW")
{
return new BMW();
}
else if(name=="Benz")
{
return new Benz();
}
else
{
return NULL;
}
}
};
int main()
{
Car *bmw=CarFactory::getCar("BMW");
cout<<bmw->getInfo()<<endl;
Car *benz=CarFactory::getCar("Benz");
cout<<benz->getInfo()<<endl;
return 0;
}