策略模式
实验 23:策略模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解策略模式的动机,掌握该模式的结构;
2、能够利用策略模式解决实际问题。
[实验任务]:旅行方式的选择
旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。
源代码
/** * 旅行方式抽象接口 */ public interface TravelStrategy { public void travel(); } public class TrainStrategy implements TravelStrategy { @Override public void travel() { System.out.println("乘火车旅行"); } } public class AirplaneStrategy implements TravelStrategy { @Override public void travel() { System.out.println("乘坐飞机旅行"); } } public class BicycleStrategy implements TravelStrategy { @Override public void travel() { System.out.println("骑自行车旅行"); } } public class Person { private TravelStrategy strategy; public void setStrategy(TravelStrategy strategy) { this.strategy = strategy; } public void travel() { strategy.travel(); } } public class Client { public static void main(String[] args) { //三个不同的人 Person person1 = new Person(); Person person2 = new Person(); Person person3 = new Person(); //三种旅行方式 //坐火车 TravelStrategy strategy1 = new TrainStrategy(); //坐飞机 TravelStrategy strategy2= new AirplaneStrategy(); //骑自行车 TravelStrategy strategy3= new BicycleStrategy(); System.out.println("三个人要去旅行,三个人分别希望的旅行方式是"); //第一个人想坐火车旅行 System.out.print("第一个人想"); person1.setStrategy(strategy1); person1.travel(); //第二个人想坐火车旅行 System.out.print("第二个人想"); person2.setStrategy(strategy2); person2.travel(); //第三个人想坐火车旅行 System.out.print("第三个人想"); person3.setStrategy(strategy3); person3.travel(); } }