策略模式的定義:定義一系列的算法,把它們一個(gè)個(gè)封裝起來(lái),并且使它們可以相互替換
例子一:計(jì)算員工年終獎(jiǎng)
- 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
在上面的代碼中,我們把計(jì)算的具體過(guò)程封裝到strategies里面了,當(dāng)客戶發(fā)起請(qǐng)求的時(shí)候(calculate),我們就可以把請(qǐng)求委托給這些策略對(duì)象中的某一個(gè)具體的方法進(jìn)行計(jì)算