美文网首页
策略模式

策略模式

作者: sdcV | 来源:发表于2017-07-26 21:35 被阅读10次

    定义:定义一些列算法,把它们各自封装成策略类,算法被封装到策略类内部的方法中。在客户对Context发起请求时,Context总是把这些请求委托给这些策略对象中间的某一个进行计算。
    生活中的策略模式例子:比如你想出去旅行,在选择出行方式时:你有以下可以考虑:

    1. 如果没有时间,但是不在乎钱,你可以选择坐飞机。

    2. 如果没钱,可以选择坐火车或者大巴

    3. 如果再穷,可以选择骑自行车。
      这就是策略问题
      下面用代码实现模拟公司按照绩效给员工发奖金的场景
      var strategies = { //绩效等级分为 S、A、B
      "S": function(salary) {
      return salary * 4;
      },
      "A": function(salary) {
      return salary * 3;
      },
      "B": function(salary) {
      return salary * 2;
      }
      };

       var calculateBonus = function(level, salary) { //计算最终奖金
           return strategies[level](salary);
       };
      
      console.log(calculateBonus('S', 2000)); //8000
      console.log(calculateBonus('A', 1000)); //3000

    相关文章

      网友评论

          本文标题:策略模式

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