无论学习前端还是后端设计模式是作为一名程序员不可缺少的知识,就像下底传中对于一个边锋来说。
一.策略模式
策略模式给人的第一感觉就是在代码里面消除了很多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));
这就是简单的策略模式。