zoukankan      html  css  js  c++  java
  • 策略模式解决if-else过多

    将判断及处理定义为一个策略对象,key为判断条件,值为函数,可带参。

    var strategy = {
    'a':function(count){
    return count*1;
    },
    'b':function(count){
    return count*2;
    },
    'c':function(count){
    return count*3;
    }
    }
    //定义一个函数接收判断条件及参数
    var calculate = function(level,count){
    return strategy[level](count);//找到对应条件的函数并执行
    }

    console.log(calculate('a',1));//1
    console.log(calculate('b',1));//2

    这样写的好处是,代码中减少了大量if/else语句;可扩展性好;
    写if/else语句会基于判断一个一个对比,倘若判断多,且匹配条件刚好又处于靠后位置,势必会影响效率。
    至于采用对象查找key值,有人试验查找一个具有300000个字符串的键值对,查找速率小于1ms。
  • 相关阅读:
    delphi参数传递
    Delphi OO
    Delphi Excel
    Delphi Register
    西安前端交流会
    web前端开发教程系列-4
    web前端开发教程系列-3
    web前端开发教程系列-2
    web前端开发教程系列-1
    露个脸
  • 原文地址:https://www.cnblogs.com/xinyouhunran/p/13346143.html
Copyright © 2011-2022 走看看