//-----------------------------------------------------------------
//Creational Patterns--factory method
//创建型模式--工厂方法
//-----------------------------------------------------------------

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:
    virtual Tank* createTank() = 0;
};

class Tank80Factory : public TankFactory
{
public:

    Tank* createTank(){return new Tank80();}
};
class Tank99Factory : public TankFactory
{
public:
    Tank* createTank(){return new Tank99();}
};

10-03 17:27