JavaScript中的设计模式:策略模式

无论学习前端还是后端设计模式是作为一名程序员不可缺少的知识,就像下底传中对于一个边锋来说

一.策略模式

策略模式给人的第一感觉就是在代码里面消除了很多if-else分支语句,比如一个求员工奖金的程序:

var caculate = function(level,salary){
    if(level==='A'){
        return salary*4;
    }
    if(level==='B'){
        return salary*5;
    }
}
caculate('A',5000);
caculate('B',3000);

不适用设计模式,代码如上图,会在一个函数中加入很多if判断,若果分支比较长,或者以后加入更多的种类,那么维护起来会很不方便。使用策略模式就是把真正需要变化的封装起来,比如这里的计算奖金的办法,最后将计算奖金委托给奖金算法。

var strategy  = {
    'A':function(salary){
        return salary*4;
    },
    'B': function(salary){
        return salary*5;
    }
};
var caculate = function(level,salary){
    return strategy[level](salary);
}
console.log(caculate('A',5000));

这就是简单的策略模式。

原文地址:https://www.cnblogs.com/bdbk/p/4432963.html