初面网初面网

策略模式

定义一系列方法(或算法),使它们可以相互替换。

一般来说,可以用来替代if...else的写法

小例子

根据不同条件返回不同结果

let strategy = {
  "A": (salary)=>{
    return salary*4
  },
  "B": (salary)=>{
    return salary*3
  },
  "C": (salary)=>{
    return salary*2
  },
  "D": (salary)=>{
    return salary
  },
}

function calcBonus(level, salary){
  return strategy[level](salary)
}

calcBonus("A", 10000)
calcBonus("C", 8000)

更新于 2025/2/26