策略模式的定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换
例子一:计算员工年终奖
- levelA->3*salary
- levelB->2*salary
- levelC->1*salary
var strategies = {
"A" : function(salary){
return salary * 3;
},
"B" : function(salary){
return salary * 2;
},
"C" : function(salary){
return salary * 1;
}
};
var calculate = function(level,salary){
return strategies[level](salary);
};
console.log(calculate("B",15000));//30000
在上面的代码中,我们把计算的具体过程封装到strategies里面了,当客户发起请求的时候(calculate),我们就可以把请求委托给这些策略对象中的某一个具体的方法进行计算