javascript策略模式
来源:互联网 发布:fast rcnn tensorflow 编辑:程序博客网 时间:2024/06/03 18:07
在程序设计中,经常遇到一个功能有很多方案可以选择,一个过程下有很多条件分支。
最初的实现方案是对每个情况用if-els判断,如下:
var calculateBonuw=function(level,salary){
if(level=='s'){
return salary*4;
}else if(level=='a'){
return salary*5;
}else if(level=='b'){
return salary*6;
}
}
calculateBonuw('s',2000); //8000
calculateBonuw('a',1000); //5000
上面的代码看起来很简单,但是问题也很明显,如果增加level=‘c’的情况,就需要在if-else语句中再加一组代码加以判断,这违背了开放-封闭原则。
策略模式的定义是:定义一系列的算法,把他们一个个的封装起来,并且是他们可以相互替换。
策略模式的目的就是把算法的使用和算法的实现分离开来。
var strategies={
"s":function(salary){
return salary*4;
},
"a":function(salary){
return salary*5;
},
"b":function(salary){
return salary*6;
}
}
var caluateBonus = function(level,salary){
return strategies[level](salary);
}
caluateBonus("s",2000); //8000
caluateBonus("a",1000); //5000
- javascript策略模式
- javascript策略模式
- JavaScript与策略模式
- JavaScript策略模式
- JavaScript之策略模式
- JavaScript设计模式--策略模式
- JavaScript设计模式----策略模式
- javascript 设计模式-策略模式
- JavaScript版本的策略模式
- javascript策略模式(strategy)
- javascript设计模式之策略(Strategy)模式
- JavaScript设计模式——策略模式
- JavaScript设计模式之策略模式
- Javascript设计模式-08-策略模式
- JavaScript 策略模式封装表单验证库
- javascript设计模式(一)单例模式 策略模式
- 【JavaScript设计模式】行为型设计模式--策略模式
- 6. JavaScript 设计模式(策略模式,桥接模式)
- [Java并发包学习七]解密ThreadLocal
- 高性能 TCP & UDP 通信框架 HP-Socket v3.5.1 发布
- activiti模型导出——衍生response响应方式解析
- 自定义消息
- Python读取PDF内容
- javascript策略模式
- HTTP工作原理及HTTP请求、响应报文解读
- c++工程里一个文件怎么调用另外一个文件里的函数
- 1、Git简介
- 实习入职第四天:Thread有关知识点2
- 加密灵活性-Cryptographic Agility
- C语言获取系统时间 & 精度
- android 使用lint + studio ,排查客户端无用资源,string,drawable,layout等
- IntelliJ IDEA 中文乱码解决