设计模式-策略模式的实现(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()); }
运行结果’