js策略模式 实现表单验证

策略模式

定义:定义一系列的算法,把它们一个一个封装起来,并且使它们可以相互替换。

使用策略模式计算奖金

需求为绩效S的人4倍奖金,绩效为A的人3倍奖金,绩效为B的人年终奖是2倍工资。

  var caculateBonus = function(performanceLevel, salary){
   
      if(performanceLevel === 'S'){
   
          return salary * 4;
      }
      if(performanceLevel === 'A'){
   
          return salary * 3;
      }
      if(performanceLevel === 'B'){
   
          return salary * 2;
      }
  }

这段代码有一些缺点,如果我们想改变绩效的奖金系数,我们必须修改calculateBonus函数的内部实现,这是违反开放-封闭原则的。算法的复用性很差,如果在程序的其他地方需要重用这些计算奖金的方法,就只有复制和粘贴。

使用组合函数重构代码

我们把各种算法封装到一个个小函数里面,这些小函数有着良好的命名,可以一目了然知道它对应者哪种算法

   var performanceS = function(salary){
   
       return salary * 4;
   };
   var performanceA = function(salary){
   
       return salary * 3;
   };
   var performanceB = function(salary){
   
       return salary * 2;
   }
   var calculateBonus = function(performanceLevel, salary){
   
      if(performanceLevel === 'S'){
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值