第二章 --- 关于Javascript 设计模式 之 策略模式
这一章节里面,我们会主要的针对JavaScript中的策略模式进行理解和学习
一、定义
策略模式: 定义一系列的算法,把他们封装起来,并且是他们可以相互替换。
(这样的大的定义纲领,真的不好理解,特别是对于初学者来说)
那么我们就直接来看看代码
二、使用Javascript 中的一般方法来实现 根据每一位员工的年底业绩考核,来核算年终奖的需求。
1、我们还是来用我们最为熟悉的 JS 代码来实现这个功能
var calculateBonus = function(salary,perLevel){
if( perLevel === 'S'){
return salary * 4 ;
}
if(perLevel === 'A'){
return salary * 3 ;
}
if(perLevel === 'B'){
return salary * 2;
}
}
var result = calculateBonus(10000,'S');
console.log(result); // 40000 ;
#### 思考,这样做有什么不好的地方呢?
结果是显而易见的:
1、 当我们的评选等级。越来越多的时候,我们的calculateBonus 函数就会越来越大,而且乱
2、我们的calculateBonus 函数 缺乏弹性,如果我们新增一种或者 10 中评选方案的话,那么我们必须深入的改变 我们的calculateBonus 函数
3、算法的 复用性差,如果在别的地方需要 这个 奖金的算法的时候,我们只有复制这段代码了。
三、使用Javascript 中的策略模式来实现 根据每一位员工的年底业绩考核,来核算年终奖的需求。
var methods = {
S: function(salary){
return salary * 4 ;
} ,
A: function(salary){
return salary * 3 ;
},
B: function(salary){
return salary * 2 ;
},
C: function(salary){
return salary * 1 ;
}
}
var calculateBonus = function( perLevel ,salary){
return methods[perLevel](salary);
}
var xiao = calculateBonus('S',10000);
console.log(xiao); //40000
欢迎推荐,欢迎 star