实验 23:策略模式

实验 23:策略模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解策略模式的动机,掌握该模式的结构;

2、能够利用策略模式解决实际问题。

 
   

 

 

[实验任务一]:旅行方式的选择

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

实验要求:

1.提交源代码;

JAVA

package rjsj.no23;

 

public class BicycleStrategy implements TravelStrategy{

    @Override

    public void travel() {

        System.out.println("骑自行车旅游");

    }

}

package rjsj.no23;

 

public class Client {

    public static void main(String[] args) {

        Traveler traveler = new Traveler();

 

        System.out.println("旅游开始!");

        TravelStrategy travelStrategy = new TrainStrategy();

        traveler.setTravelStrategy(travelStrategy);

        traveler.travel();

        System.out.println("**************************************************");

        System.out.println("旅游开始!");

        travelStrategy = new AirplaneStrategy();

        traveler.setTravelStrategy(travelStrategy);

        traveler.travel();

        System.out.println("**************************************************");

        System.out.println("旅游开始!");

        travelStrategy = new BicycleStrategy();

        traveler.setTravelStrategy(travelStrategy);

        traveler.travel();

        System.out.println("**************************************************");

    }

}

package rjsj.no23;

 

public class TrainStrategy implements TravelStrategy{

    @Override

    public void travel() {

        System.out.println("坐火车旅游");

    }

}

package rjsj.no23;

 

public class Traveler {

    private TravelStrategy travelStrategy;

 

    public void setTravelStrategy(TravelStrategy travelStrategy) {

        this.travelStrategy = travelStrategy;

    }

 

    public void travel(){

        travelStrategy.travel();

    }

}

package rjsj.no23;

 

public interface TravelStrategy {

    void travel();

}

package rjsj.no23;

 

public class AirplaneStrategy implements TravelStrategy{

    @Override

    public void travel() {

        System.out.println("乘坐飞机旅游");

    }

}

C++

package rjsj.no23;

 

public class Client {

    public static void main(String[] args) {

        Traveler traveler = new Traveler();

 

        System.out.println("旅游开始!");

        TravelStrategy travelStrategy = new TrainStrategy();

        traveler.setTravelStrategy(travelStrategy);

        traveler.travel();

        System.out.println("**************************************************");

        System.out.println("旅游开始!");

        travelStrategy = new AirplaneStrategy();

        traveler.setTravelStrategy(travelStrategy);

        traveler.travel();

        System.out.println("**************************************************");

        System.out.println("旅游开始!");

        travelStrategy = new BicycleStrategy();

        traveler.setTravelStrategy(travelStrategy);

        traveler.travel();

        System.out.println("**************************************************");

    }

}

package rjsj.no23;

 

public class TrainStrategy implements TravelStrategy{

    @Override

    public void travel() {

        System.out.println("坐火车旅游");

    }

}

package rjsj.no23;

 

public class Traveler {

    private TravelStrategy travelStrategy;

 

    public void setTravelStrategy(TravelStrategy travelStrategy) {

        this.travelStrategy = travelStrategy;

    }

 

    public void travel(){

        travelStrategy.travel();

    }

}

package rjsj.no23;

 

public interface TravelStrategy {

    void travel();

}

package rjsj.no23;

 

public class AirplaneStrategy implements TravelStrategy{

    @Override

    public void travel() {

        System.out.println("乘坐飞机旅游");

    }

}

运行结果:

 

 

 

2.注意编程规范。

 

posted @ 2022-11-17 10:37  萧贾jzm  阅读(50)  评论(0编辑  收藏  举报
//歌单id