美文网首页
策略模式

策略模式

作者: 金煜博 | 来源:发表于2021-05-03 13:28 被阅读0次

什么是策略模式?

可以动态根据实际获取的对象来改变相应的策略

示例场景描述

出门旅行时选择交通工具(飞机 汽车 火车就是出行的策略)

示例图

图片.png

示例代码

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.运行结果


图片.png

相关文章

网友评论

      本文标题:策略模式

      本文链接:https://www.haomeiwen.com/subject/yeetdltx.html