策略模式

定义:定义一些列算法,把它们各自封装成策略类,算法被封装到策略类内部的方法中。在客户对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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,092评论 1 10
  • 介绍 策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。 在程序设计中,我们也常常...
    悟空你又瘦了阅读 617评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,808评论 2 17
  • 七 青春是一首歌,有的人是笑着唱的;有的人是哭着唱的;有的人是又哭又笑着唱完的。 回首纯子的青春岁月,她应该是属于...
    静如London阅读 1,113评论 0 1
  • 一、作为商家,怎么样利用定价策略来获利? 1、利用“锚定效应”—— 比如:在贵的商品旁边摆放更贵的商品,就能增加贵...
    夜梭静省阅读 610评论 0 0