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)