设计模式-策略模式的实现(c++)


旅行方式的选择(c++)

旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。

#include
#include<string>
using namespace std;
class TravelStrategy
{

public: virtual void travel()=0;

};

class AirplaneStrategy:public  TravelStrategy
{
public: void travel()
    {
        cout<<"飞机游真快,俯瞰大好河山!"<<endl;
    }
};

class TrainStrategy :public  TravelStrategy
{
public: void travel()
    {
        cout<<"火车游,沿途的美景令我流连忘返!"<<endl;
    }
};


class BicycleStrategy :public  TravelStrategy
{
public: void travel()
    {
        cout<<"自行车游,锻炼身体,真不错!"<<endl;
    }
};

class Person
{
private: TravelStrategy *ts;
public: Person(TravelStrategy *ts)
    {
        this->ts = ts;
    }
       void travel()
    {
        ts->travel();
    }
};

int main(){
        Person *mc;
        cout<<"你想选择的出行方式!"<<endl;
        cout<<"1.飞机游"<<endl;
        cout<<"2.火车游"<<endl;
        cout<<"3.自行车游"<<endl;
        int a = 0;
        cin >> a;
        switch (a) {
        case 1:
        {TravelStrategy *at = new AirplaneStrategy();
        mc = new Person(at);
        mc->travel();
        break;
        }
        case 2:
        {
            TravelStrategy *tr = new TrainStrategy();
            mc = new Person(tr);
            mc->travel();
            break;
        }
        case 3:
            TravelStrategy *by = new BicycleStrategy();
            mc = new Person(by);
            mc->travel();
        }
        //Person mc=new Person((TravelStrategy)XMLUtil.getBean());


}

运行结果’

相关