如果我们需要很多if else的时候 代码就会很冗余
let type = 'A'
if(type == 'A'){
return '100'
}else if(type == 'B'){
return '200'
}
为此就出现了一种设计模式 —— 策略模式
当一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变
写在工具类里面
let calculateBonus = function( performanceLevel ,data){
for(let i in data){
if ( performanceLevel == data[i].type ){
return data[i].val;
}
}
}
let Bonus = function Bonus(type,data){
return calculateBonus( type ,data);
}
export default {
Bonus
}
调用
let data = [
{type:'A',val:100},
{type:'B',val:200},
{type:'C',val:300}
]
console.log(Bonus.Bonus('A',data)) // 100
console.log(Bonus.Bonus('B',data)) // 200
console.log(Bonus.Bonus('C',data)) // 300
避免了多级嵌套,内容也可以随之修改,根据需求变换成不同的内容