策略模式的定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
基于策略模式的程序至少由两部分组成。
- 策略类,策略类封装了具体的算法,并负责具体的计算过程。
- 环境类 Context,Context接受客户的请求,随后把请求委托给某一个策略类。要做到这点,说明 Context中要维持对某个策略对象的引用。
以下编写一个名为calculateBonus
的函数来计算每个人的奖金数额,它接收两个参数:员工的工资数额和他的绩效考核等级。
let strategies = {
S: salary => salary * 4,
A: salary => salary * 3,
B: salary => salary * 2
}
let calculateBonus = (level, salary) => {
return strategies[level](salary)
}
console.log(calculateBonus('S', 20000))
console.log(calculateBonus('A', 10000))
运行结果:
80000
30000
网友评论