//Creational Patterns--abstract factory
//创建型模式--抽象工厂
//-----------------------------------------------------------------
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 plane
{
public:
virtual void message() = 0;
};
class plane80 : public plane
{
public:
void message(){cout << "Plane80" << endl;}
};
class plane99 : public plane
{
public:
void message(){cout << "Plance99" << endl;}
};
//-----------------------------------------------------------------
class Factory
{
public:
virtual Tank* createTank() = 0;
virtual plane* createPlane() = 0;
};
class Factory80 : public Factory
{
public:
Tank* createTank(){return new Tank80();}
plane* createPlane(){return new plane80();}
};
class Factory99 : public Factory
{
public:
Tank* createTank(){return new Tank99();}
plane* createPlane(){return new plane99();}
};