2024.12.3

设计模式实验二十三

软件设计                  石家庄铁道大学信息学院

 

实验 23:策略模式

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

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

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

 
   

 

 

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

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

实验要求:

1.  画出对应的类图;

 

 

2.  提交源代码;

// 定义 TravelStrategy 接口

public interface TravelStrategy {

    void travel();

}

// 实现飞机旅行策略

public class AirplaneStrategy implements TravelStrategy {

    @Override

    public void travel() {

        System.out.println("旅行方式:乘坐飞机。");

    }

}

 

// 实现火车旅行策略

public class TrainStrategy implements TravelStrategy {

    @Override

    public void travel() {

        System.out.println("旅行方式:乘坐火车。");

    }

}

 

// 实现自行车旅行策略

public class BicycleStrategy implements TravelStrategy {

    @Override

    public void travel() {

        System.out.println("旅行方式:骑自行车。");

    }

}

// 定义 Person 类,用于选择和执行旅行方式

public class Person {

    private TravelStrategy strategy;

 

    // 设置旅行策略

    public void setStrategy(TravelStrategy strategy) {

        this.strategy = strategy;

    }

 

    // 执行旅行

    public void travel() {

        if (strategy != null) {

            strategy.travel();

        } else {

            System.out.println("请先选择旅行方式!");

        }

    }

}

//测试类

public class StrategyPatternTest {

    public static void main(String[] args) {

        // 创建 Person 对象

        Person person = new Person();

 

        // 选择飞机旅行

        person.setStrategy(new AirplaneStrategy());

        person.travel();

 

        // 选择火车旅行

        person.setStrategy(new TrainStrategy());

        person.travel();

 

        // 选择自行车旅行

        person.setStrategy(new BicycleStrategy());

        person.travel();

    }

}

3.  注意编程规范。

 

 

posted @ 2024-12-25 10:29  cvjj  阅读(5)  评论(0)    收藏  举报