//-----------------------------------------------------------------
//Creational Patterns--single factory
//创建型模式--简单工厂
//-----------------------------------------------------------------
enum TankType
{
T80 = 1,
T99 = 2
};
//-----------------------------------------------------------------
class Tank
{
public:
virtual void message() = 0;
};
class Tank80 : public Tank
{
public:
void message(){cout << "Tank80"<< endl;}
};
class Tank99 : public Tank
{
void message(){cout << "Tank99" << endl;}
};
//-----------------------------------------------------------------
class TankFactory
{
public:
Tank * createTank(TankType tt)
{
switch(tt)
{
case T80:
return new Tank80();
break;
case T99:
return new Tank99();
break;
}
}
};