美文网首页
策略模式

策略模式

作者: 练习时长2年半的个人练习生 | 来源:发表于2020-05-19 11:25 被阅读0次
    • 定义
      策略模式的定义是将算法的实现、和算法的使用分离,组合的设计模式,当然针对业务同理。降低了代码的耦合性。

    • 目的
      避免多重条件判断和复制粘贴。

    • 使用场景
      从定义上看,策略模式就是用来封装算法的。但如果把策略模式仅仅用来封装算法,未免有一点大材小用。在实际开发中,我们通常会把算法的含义扩散开来,使策略模式也可以用来封装 一系列的“业务规则”。只要这些业务规则指向的目标一致,并且可以被替换使用,我们就可以 用策略模式来封装它们。

    • 具体实现

    1、通过等级、基本工资计算年终奖

    const calcMoney = {
        'S':salary=> 5*salary,
        'A':salary=> 4*salary,
        'B':salary=> 3*salary,
        'C':salary=> 2*salary,
        'D':()=> 0
    }
    
    
    class Bonus{
       constructor(level,salary){
          this.level = level;
          this.salary = salary;
       }
       getBonus(){
          return  calcMoney[this.level](this.salary)
       }
    }
    
    
    let bonus = new Bonus('S',23000);
    console.log(bonus.getBonus()) //115000
    

    与if else if 多重判断,相比,代码拓展性,独立性,可读性变得更强

    相关文章

      网友评论

          本文标题:策略模式

          本文链接:https://www.haomeiwen.com/subject/chivohtx.html