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

    类图

     

    源码

    TravelStrategy.java
    package com.strategy;
    
    public abstract class TravelStrategy {
        public abstract int costTime(int km);
    }
    
    AirPlaneTravelStrategy.java
    package com.strategy;
    
    public class AirPlaneTravelStrategy extends TravelStrategy{
        @Override
        public int costTime(int km) {
            return km * 1;
        }
    }
    
    
    
    CarTravelStrategy.java
    package com.strategy;
    
    public class CarTravelStrategy extends TravelStrategy{
        @Override
        public int costTime(int km) {
            return km * 1;
        }
    
    }
    
    TravelHappy.java
    package com.strategy;
    
    public class TravelHappy {
        private TravelStrategy strategy;
    
        public TravelHappy(TravelStrategy strategy){
            this.strategy = strategy;
        }
    
        public int travelCostTime(int km){
            return strategy.costTime(km);
        }
    }
    
    Client.java
    package com.strategy;
    
    public class Client {
        public static void main(String args[]){
            TravelStrategy strategy;
            TravelHappy th;
            //这里的策略可以使用配置文件进行读取
            strategy = new AirPlaneTravelStrategy();
            th = new TravelHappy(strategy);
            System.out.println("从北京到上海 1000公里");
            int costTime;
            costTime = th.travelCostTime(1000);
            System.out.println("-------costTime-------------" + costTime +" 分钟");
    
            System.out.println("--------------------");
            //这里的策略可以使用配置文件进行读取
            strategy = new CarTravelStrategy();
            th = new TravelHappy(strategy);
            costTime = th.travelCostTime(1000);
            System.out.println("-------costTime-------------" + costTime +" 分钟");
        }
    }

    测试截图

     

  • 相关阅读:
    webpack4 css modules
    CSS多种方式实现底部对齐
    十大Web开发趋势
    CSS float相关介绍
    Web 堆栈选择指南:JAMStack vs MEAN vs LAMP
    a标签调用js函数写法总结
    如何给网页划分结构?
    九大高效的前端测试工具与框架
    移动端手机验证码四格、六格的input实现
    在modelarts上部署backend为TensorFlow的keras模型
  • 原文地址:https://www.cnblogs.com/lx06/p/15688609.html
Copyright © 2011-2022 走看看