JavaScript设计模式与开发实践5.2 JavaScript版本的策略模式_JavaScript设计模式与开发实践5.2 JavaScript版本的策略模式试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > JavaScript设计模式与开发实践 > 5.2 JavaScript版本的策略模式

JavaScript设计模式与开发实践——5.2 JavaScript版本的策略模式

在5.1节中,我们让strategy对象从各个策略类中创建而来,这是模拟一些传统面向对象语言的实现。实际上在JavaScript语言中,函数也是对象,所以更简单和直接的做法是把strategy直接定义为函数: var strategies = { "S": function( salary ){ return salary * 4; }, "A": function( salary ){ return salary * 3; }, "B": function( salary ){ return salary * 2; } }; 同样,Context也没有必要必须用Bonus类来表示,我们依然用calculateBonus 函数充当Context来接受用户的请求。经过改造,代码的结构变得更加简洁: 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', 20000 ) ); // 输出:80000 console.log( calculateBonus( 'A', 10000 ) ); // 输出:30000 在接下来的缓动动画和表单验证的例子中,我们用到的都是这种函数形式的策略对象。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《JavaScript设计模式与开发实践》其他试读目录

• 1.1 动态类型语言和鸭子类型
• 1.2 多态
• 1.3 封装
• 1.4 原型模式和基于原型继承的JavaScript对象系统
• 5.1 使用策略模式计算奖金
• 5.2 JavaScript版本的策略模式 [当前]
• 5.3 多态在策略模式中的体现
• 5.4 使用策略模式实现缓动动画
• 5.5 更广义的“算法”
• 5.6 表单校验
• 5.7 策略模式的优缺点
• 5.8 一等函数对象与策略模式
• 5.9 小结
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •