前端项目中策略模式的应用

57 阅读1分钟

1.何为策略模式

定义一系列算法,并把他们封装起来,需要时再传递参数去调用。

2.解决的痛点问题

需要判断的逻辑大体相同,但需要一堆if,else去判断,造成代码量很冗余。

3、策略模式角色

(1)环境类:从客户端接收的请求 (2)策略类:具体的算法。

//策略类
export const totalSalary = {
'a':function(salary){
    return salary *4
 },
 'b':function(salary){
    return salary *2
 },
 'c':function(salary){
    return salary *2
 }
}

//环境类
const getSalary = function(level,salary){
    return totalSalary[level](salary)
 }
//策略类:封装的方法:
export function judgeApprovalType(type, approvalType) {
  let bool = false
  switch (type) {
    case 0:
      bool = ['130'].includes(approvalType)
      break
    case 1:
      bool = ['5', '6'].includes(approvalType)
      break
    case 2:
      bool = ['1', '2'].includes(approvalType)
      break
    case 3:
      bool = ['3', '4'].includes(approvalType)
      break
    case 4:
      bool = ['7', '8'].includes(approvalType)
      break
    case 5:
      bool = ['11', '12'].includes(approvalType)
      break
    default:
      bool = false
      break
  }
  return bool
}

//环境类
judgeApprovalType(1,1)