当你去深度的去了解JavaScript的时候,一定要去看设计模式
我给大家分享的是设计模式的策略模式
假设一种场景,你需要去跟你sex是1或者2去判断男女
再假设一种场景,你需要去根据绩效为 S 绩效薪资四倍, A 绩效薪资三倍 B 绩效薪资为两杯
让你做,你会去判断,这两种场景还好,更多场景怎么办,更多位置需要这样怎么做。
缺点:当有很多条件, if 分支不断累加,使得代码越来越庞大
使用策略模式后的优点 :去掉了 if 分支,减少了性能消耗,并且使代码有了弹性,随时增加其他条件,不需要更改原代码。
分析:js 的对象可以直接创建,将函数封装进去,这样一来,代码显得清晰简洁。代码的复用,弹性也随之变强。
综上所属,对比使用策略模式前后的优缺点,当遇到大量判断的时候,希望大家使用策略模式
策略模式代码块
/**
@param {resolveObj,sex} 第一个参数是策略模式的对象, 例如 参数1. { 0: '女', 1: '男' }
@param {sex} 第二个参数是策略模式对象的属性值 例如 参数2. 1/2
@return {obj[key]} resolveObj[sex] 返回的对象属性值
*/
let StrategyPattern = (resolveObj, sex) => {
// 判断传参对象中是否有值
if (resolveObj.constructor === Object && Object.keys(resolveObj).length && sex != undefined) {
return resolveObj[sex]
} else {
console.error('参数异常')
}
}
使用代码
我一般都是写在工具库里面,再main.js引入,挂载再vue的原型上面
console.log(StrategyPattern({1:'男',2:'女'},1));