实验 23:策略模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解策略模式的动机,掌握该模式的结构;
2、能够利用策略模式解决实际问题。
[实验任务一]:旅行方式的选择
旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。
实验要求:
1. 画出对应的类图;
2. 提交源代码;
3. 注意编程规范。
1.
2.// 策略接口
public interface Strategy {
void algorithm();
}
// 具体策略A:乘坐飞机旅行
public class ConcreteStrategyA implements Strategy {
@Override
public void algorithm() {
System.out.println("选择乘坐飞机旅行");
}
}
// 具体策略B:乘火车旅行
public class ConcreteStrategyB implements Strategy {
@Override
public void algorithm() {
System.out.println("选择乘火车旅行");
}
}
// 具体策略C:自行车游
public class ConcreteStrategyC implements Strategy {
@Override
public void algorithm() {
System.out.println("选择自行车游");
}
}
// 上下文
public class Context {
private Strategy strategy;
public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}
public void executeStrategy() {
strategy.algorithm();
}
}
// 客户端
public class Client {
public static void main(String[] args) {
Context context = new Context();
// 选择乘坐飞机旅行
context.setStrategy(new ConcreteStrategyA());
context.executeStrategy();
// 选择乘火车旅行
context.setStrategy(new ConcreteStrategyB());
context.executeStrategy();
// 选择自行车游
context.setStrategy(new ConcreteStrategyC());
context.executeStrategy();
}
}