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 +" 分钟");
        }
    }

    测试截图

     

  • 相关阅读:
    Django~1
    Python 正则表达式入门(初级篇)
    pytho占位符
    django之基于cookie和装饰器实现用户认证
    form error
    Python之路【第十七篇】:Django【进阶篇 】
    djangoform详解
    django自定义form验证error
    Django CRM客户关系管理系统
    ulimit
  • 原文地址:https://www.cnblogs.com/lx06/p/15688609.html
Copyright © 2011-2022 走看看