JavaScript 设计模式 之 策略模式

日期: 2017-08-11         浏览量: 2842

策略模式定义:定义一系列的算法,把它们一个个的封装起来,并且使用它们可以相互替换。 


案例 1:计算员工的年终奖,绩效 S 的认年终奖为 4 倍工资, 绩效 A 的认年终奖为 3 倍工资,绩效 B 的认年终奖为 3 倍工资。代码如下:



var strategies = {
    "S" : function(salary){
        return salary*4;
    },
    "A" : function(salary){
        return salary*3;
    },
    "B" : function(salary){
        return salary*2;
    }
};
var calculateBonus = function(level,salary){
    return strategies[level](salary);
};
console.log(calculateBonus('S',2000));   // 输出 8000
console.log(calculateBonus('A',1000));   // 输出 3000