定义
定义一系列的算法,把它们一个个封装起来,并且使它们可以互相替换。
简单来说,假定有一个函数,我们可以通过向函数传入不同的参数来进行不同的处理,这就是所谓的策略模式。
javascript中的策略模式
公司根据职位等级计算年终奖案例
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", 20000))
console.log(calculateBonus("A", 15000))
console.log(calculateBonus("B", 10000))
calculateBonus根据传入参数的不同,调用不同的函数,进行处理。
应用
- 实现缓动动画
- 进行表单校验
想要阅读案例源码的,可以参考JavaScript设计模式与开发实践