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

策略模式(一)

时间:2022-12-23 20:44:15浏览次数:38  
标签:java 策略 test23 travel TravelStrategy 模式 void public

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

 

//Person.java
package test23;
public class Person {
    //聚合策略类对象
    private TravelStrategy strategy;
    public void setStrategy(TravelStrategy strategy) {
        this.strategy=strategy;
    }
    public void travel() {
        strategy.travel();
    }
}
//TravelStrategy.java
package test23;
public interface TravelStrategy {
    public void travel();
}
//AirplaneStrategy.java
package test23;
public class AirplaneStrategy implements TravelStrategy{

    public void travel() {
        System.out.println("乘坐飞机旅行");
    }
    
}
//BicycleStrategy.java
package test23;
public class BicycleStrategy implements TravelStrategy{

    public void travel() {
        System.out.println("自行车游");
    }
    
}
//TrainStrategy.java
package test23;
public class TrainStrategy implements TravelStrategy{

    public void travel() {
        System.out.println("乘火车旅行");
    }
    
}
//Client.java
package test23;
import java.util.Scanner;
public class Client {
    public static void main(String[] args) {
        Person p = new Person();
        System.out.println("请选择出行方式:1、飞机  2、火车  3、自行车");
        Scanner input=new Scanner(System.in);
        int i=input.nextInt();
        if(i==1) {
            p.setStrategy(new AirplaneStrategy());
        }else if(i==2) {
            p.setStrategy(new TrainStrategy());
        }else if(i==3) {
            p.setStrategy(new BicycleStrategy());
        }
        p.travel();
    }
}

 

标签:java,策略,test23,travel,TravelStrategy,模式,void,public
From: https://www.cnblogs.com/qiuyutingyyds/p/17001593.html

相关文章

  • 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、理解职责链模式......
  • 命令模式javac++
    软件设计                 石家庄铁道大学信息学院 实验16:命令模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解命令模式的动......