设计模式之策略模式

当你去深度的去了解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));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值