策略模式
1、什么是策略模式?
策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法
例如,出门旅游不同的人会选择不同的交通工具,比如;火车、飞机、自驾 等等,这些出行方式都是策略
策略模式**(Strategy)**定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。
2、实例讲解
旅游出行方式的选择
上下文类 Travel
public class Travel {
private TravelStrategy travelStrategy;
public void setTravelStrategy(TravelStrategy travelStrategy) {
this.travelStrategy = travelStrategy;
}
public void travel(){
System.out.println("我要去旅游!...");
travelStrategy.travelTools();
System.out.println("到了!");
}
}
抽象策略类 TravelStrategy
public interface TravelStrategy {
void travelTools();
}
具体策略类
public class TrainStrategy implements TravelStrategy{
@Override
public void travelTools() {
System.out.println("坐火车去旅游......");
}
}
public class AirplaneStrategy implements TravelStrategy {
@Override
public void travelTools() {
System.out.println("坐飞机去旅游.....");
}
}
测试类
public class Test {
public static void main(String[] args) {
AirplaneStrategy airplaneStrategy=new AirplaneStrategy();
TrainStrategy trainStrategy=new TrainStrategy();
Travel travel=new Travel();
travel.setTravelStrategy(airplaneStrategy);
travel.travel();
}
}