什么是策略模式?
可以动态根据实际获取的对象来改变相应的策略
示例场景描述
出门旅行时选择交通工具(飞机 汽车 火车就是出行的策略)
示例图

示例代码
1.创建出行抽象策略类
public abstract class TravelStrategy {
public abstract void travelMode();
}
2.创建出行工具类 飞机 汽车 火车
public class Plane extends TravelStrategy {
@Override
public void travelMode() {
System.out.println("想做飞机出行");
}
}
public class Car extends TravelStrategy {
@Override
public void travelMode() {
System.out.println("想做汽车出行");
}
}
public class Train extends TravelStrategy{
@Override
public void travelMode() {
System.out.println("想做火车出行");
}
}
3.创建上下文包装类
public class Context {
TravelStrategy travelStrategy;
public Context(TravelStrategy travelStrategy) {
this.travelStrategy = travelStrategy;
}
public void executeStrategy(){
travelStrategy.travelMode();
}
}
4.启动类
public class Test {
public static void main(String[] args) {
Context car = new Context(new Car());
car.executeStrategy();
System.out.println("---------------------------------------");
Context plane = new Context(new Plane());
plane.executeStrategy();
System.out.println("---------------------------------------");
Context train = new Context(new Train());
train.executeStrategy();
}
}
5.运行结果

网友评论