zoukankan      html  css  js  c++  java
  • java策略模式

    /**
    * 策略模式测试
    * 策略模式:是一种行为模式,不在于算法的实现而在于算法的封装,使客户端独立于各个策略 -针对对象的行为
    * 简单工厂:旨在工厂对对象的创建 -针对对象的创建
    */
    例子:
    /**
    * 路线选择抽象策略类
    */
    public abstract class RoadStrategy {
    //旅行方式
    public abstract void travelWay();
    }

    /**
    * 策略上下文
    */
    public class ContextStrategy {
    //抽象策略
    private RoadStrategy roadStrategy;

    public ContextStrategy(RoadStrategy roadStrategy) {
    this.roadStrategy = roadStrategy;
    }

    //旅行方式
    public void travel(){
    roadStrategy.travelWay();
    }
    }
    /**
    * 骑车旅行
    */
    public class BikeStrategy extends RoadStrategy {
    @Override
    public void travelWay() {
    System.out.println("自行车出游......");
    }
    }
    /**
    * 自驾游
    */
    public class CarStrategy extends RoadStrategy {
    @Override
    public void travelWay() {
    System.out.println("开车自驾游....");
    }
    }
    测试:
    /**
    * 策略模式测试
    * 策略模式:是一种行为模式,不在于算法的实现而在于算法的封装,使客户端独立于各个策略 -针对对象的行为
    * 简单工厂:旨在工厂对对象的创建 -针对对象的创建
    */
    public class StrategyTest {
    public static void main(String[] args) {
    RoadStrategy bikeStrategy=new BikeStrategy();
    ContextStrategy contextStrategy_bike=new ContextStrategy(bikeStrategy);
    contextStrategy_bike.travel();

    RoadStrategy carStrategy=new CarStrategy();
    ContextStrategy contextStrategy_car = new ContextStrategy(carStrategy);
    contextStrategy_car.travel();

    }
    }
  • 相关阅读:
    bzoj 1856 组合
    bzoj 2809 左偏树平衡树启发式合并
    【HMOI】小C的填数游戏 DP+线段树维护
    【HNOI】 小A的树 tree-dp
    bzoj 1483 链表启发式合并
    bzoj 2733 平衡树启发式合并
    bzoj 2669 状压DP
    bzoj 2165 DP
    【HNOI】 lct tree-dp
    远程debug配置
  • 原文地址:https://www.cnblogs.com/coderdxj/p/9635930.html
Copyright © 2011-2022 走看看