首页 > 其他分享 >策略模式(二)

策略模式(二)

时间:2022-12-23 20:44:22浏览次数:35  
标签:策略 travel TravelStrategy 模式 else void new public

#include<iostream>
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 *strategy;
public:
    void setStrategy(TravelStrategy *strategy){
        this->strategy=strategy;
    }
    void travel(){
        strategy->travel();
    }
};
//测试函数
int main(){
    Person *p=new Person();
    TravelStrategy *travel;
    cout<<"出行方式:"<<endl;
    cout<<"     1.飞机\n     2.火车\n     3.自行车"<<endl;
    cout<<"-------------------------------------"<<endl;
    cout<<"请选择您的旅游方式:"<<endl;
    int i;
    cin>>i;
    if(i==1){
        travel=new AirplaneStrategy();
    }else if(i==2){
        travel=new TrainStrategy();
    }else if(i==3){
        travel=new BicycleStrategy();
    }else{
        cout<<"输入有误!"<<endl;
    }
    p->setStrategy(travel);
    p->travel();
}

 

标签:策略,travel,TravelStrategy,模式,else,void,new,public
From: https://www.cnblogs.com/qiuyutingyyds/p/17001597.html

相关文章

  • 策略模式(一)
    旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。 //Person.javapackagetest2......
  • CSRF校验策略及装饰器和auth认证模块
    目录csrf跨站请求伪造csrf校验策略csrf相关装饰器auth认证模块auth认证相关模块及操作扩展auth_user表csrf跨站请求伪造钓鱼网站:模仿一个正规的网站让用户在该网站上做......
  • Dubbo架构设计与源码解析(三)责任链模式
    作者:周可强一、责任链模式简介1、责任链模式定义责任链(ChainofResponsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对......
  • PORT模式已成功,请更新您的站点配置文件
    如何在FlashFXP中设置连接FTP服务器的模式为PORT呢? FlashFXP提供了两种连接FTP服务器的方式被动模式(PASV)、主动模式(PORT),而FlashFXP的默认设置为被动模式(PASV),更改FlashFXP将......
  • 观察者模式javac++
    软件设计                 石家庄铁道大学信息学院 实验21:观察者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解观察者模式......
  • 状态模式javac++
    软件设计                 石家庄铁道大学信息学院 实验 22:状态模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解状态模式的......
  • 策略模式javac++
    软件设计                 石家庄铁道大学信息学院 实验23:策略模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解策略模式的动......
  • 模板方法模式javac++
    软件设计                 石家庄铁道大学信息学院 实验24:模板方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解模板方法......
  • 访问者模式javac++
    软件设计                 石家庄铁道大学信息学院 实验25:访问者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解访问者模式......
  • 职责链模式javac++
    软件设计                 石家庄铁道大学信息学院 实验15:职责链模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解职责链模式......