-
定义
策略模式的定义是将算法的实现、和算法的使用分离,组合的设计模式,当然针对业务同理。降低了代码的耦合性。 -
目的
避免多重条件判断和复制粘贴。 -
使用场景
从定义上看,策略模式就是用来封装算法的。但如果把策略模式仅仅用来封装算法,未免有一点大材小用。在实际开发中,我们通常会把算法的含义扩散开来,使策略模式也可以用来封装 一系列的“业务规则”。只要这些业务规则指向的目标一致,并且可以被替换使用,我们就可以 用策略模式来封装它们。 -
具体实现
1、通过等级、基本工资计算年终奖
const calcMoney = {
'S':salary=> 5*salary,
'A':salary=> 4*salary,
'B':salary=> 3*salary,
'C':salary=> 2*salary,
'D':()=> 0
}
class Bonus{
constructor(level,salary){
this.level = level;
this.salary = salary;
}
getBonus(){
return calcMoney[this.level](this.salary)
}
}
let bonus = new Bonus('S',23000);
console.log(bonus.getBonus()) //115000
与if else if 多重判断,相比,代码拓展性,独立性,可读性变得更强
网友评论