策略模式

策略模式:

策略模式是将不同算法进行合理的分类与单独封装,从而让不同算法之间可以互相替换而不会影响到算法的使用者。

函数式

var calculateBonus = function( level, salary ){
    if ( level=== 'S' ){
        return salary * 4;
    }
    if ( level=== 'A' ){
        return salary * 3;
    }
    if ( level=== 'B' ){
        return salary * 2;
    }
};
calculateBonus( 'B', 20000 ); // 输出:40000

策略模式

const computeMode = {
  'S': function(salary) {
    return salary * 4
  },
  'A': function(salary) {
    return salary * 3
  },
  'B': function(salary) {
    return salary * 2
  }
}

const calculateBonus = (level, salary) => {
  return computeMode[level](salary)
}

console.log(calculateBonus('S', 10))

应用

 var tween = {
    linear: function (t, b, c, d) {
      return c * t / d + b;
    },
    easeIn: function (t, b, c, d) {
      return c * (t /= d) * t + b;
    },
    strongEaseIn: function (t, b, c, d) {
      return c * (t /= d) * t * t * t * t + b;
    },
    strongEaseOut: function (t, b, c, d) {
      return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
    },
    sineaseIn: function (t, b, c, d) {
      return c * (t /= d) * t * t + b;
    },
    sineaseOut: function (t, b, c, d) {
      return c * ((t = t / d - 1) * t * t + 1) + b;
    }
  };
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 简介 策略(Strategy)模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略...
    LeeLeCoder阅读 625评论 0 1
  • 二十三种设计模式 - 策略模式 策略模式简介 模式动机 完成一项任务,往往可以有多种不同的方式,每一种方式称为一个...
    JustTheSame阅读 1,906评论 2 16
  • 1、概念:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它...
    小小布谷鸟阅读 322评论 2 0
  • 排序问题: 当要比较的是整数,浮点数,都需要不同的排序方法,并且当改变了要比较的东西时要重新排序,这样不好, 怎样...
    tracy_668阅读 366评论 0 2
  • 策略模式(Strategy):将定义的一组算法封装起来,使其相互之间可以替换。封装的算法具有一定独立性,不会随客户...
    JSUED阅读 415评论 0 1

友情链接更多精彩内容