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. 注意编程规范。