技术文章

JS策略模式

2018-06-09  本文已影响14人  ThomasCho

策略模式的定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
基于策略模式的程序至少由两部分组成。

  1. 策略类,策略类封装了具体的算法,并负责具体的计算过程。
  2. 环境类 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
上一篇 下一篇

猜你喜欢

热点阅读