策略模式的优点:减少处理函数的if-else判断,将不同情况的解决方案封装到一个策略对象中,提高可扩展性,也利于复用。
- 经典例子:根据职效发年终奖
// 策略对象
var strategies = {
'S'(base){
return base * 4;
},
'A'(base){
return base * 3;
},
'B'(base){
return base * 2;
}
};
// 将计算的任务委托给策略对象
function calculateBonus(level,base){
return strategies[level](base);
};
console.log(calculateBonus('S',1000));// 4000
console.log(calculateBonus('A',1000));// 3000