策略模式--js设计模式与开发实践-7
来源:互联网 发布:java中indexof的用法 编辑:程序博客网 时间:2024/05/16 17:06
// 根据表现水平,来决定年终奖var calculateBonus=function(performanceLevel,salary){ if(performanceLevel==="S"){ return salary*4 } if(performanceLevel==="A"){ return salary*3 } if(performanceLevel==="B"){ return salary*2 }}console.log(calculateBonus("B", 20000));console.log(calculateBonus("S", 6000));
calculateBonus函数比较庞大,包含了很多if-else语句;
缺乏弹性,如果增加了一种新的绩效等级C,或者想把绩效S的将近系数改为5,那就需要深入calculateBonus的内如实现,但这样违法开放-封闭原则;
所以可以按照以下来重构代码:
var strategies={ "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));console.log(calculateBonus("B", 10000));
阅读全文
0 0
- 策略模式--js设计模式与开发实践-7
- javaScript设计模式与开发实践-策略模式
- js设计模式与开发实践1
- js设计模式与开发实践2
- js设计模式与开发实践3
- js设计模式与开发实践5
- 策略模式与开发实践
- 【学习笔记javascript设计模式与开发实践(策略模式)----5】
- 【学习笔记javascript设计模式与开发实践(策略模式)----5】
- Javascript设计模式与开发实践详解(二:策略模式)
- JS 设计模式--策略模式
- JS设计模式-策略模式
- 单例模式--《js设计模式和开发实践》
- JavaScript设计模式与开发实践
- 《JavaScript设计模式与开发实践》
- JavaScript设计模式与开发实践笔记
- JavaScript设计模式与开发实践
- JavaScript设计模式与开发实践 – 观察者模式
- MYSQL中的索引
- c语言 创建动态二维数组 读取txt文件到数组
- java每日一练
- bzoj2150: 部落战争
- java线程安全总结
- 策略模式--js设计模式与开发实践-7
- Oracle--Sequence详解
- 二维数组的查找
- bzoj4538(整体二分+LCA+BIT)
- cassandra-stress tool
- MRLabeler:一款先进的VOC格式标注工具
- Redis开发与运维(一)
- C语言之关键字
- C#获取机器信息(IPV4.IPV6.MAC.硬盘信息,机器厂商/型号)