js中的策略模式

策略模式定义了一系列算法并封装起来,使它们可以相互替换,实现了算法与使用算法的环境的解耦。在JavaScript中,策略模式常通过函数实现,避免了多重条件选择语句,提高了代码可读性和扩展性。例如,根据员工绩效计算年终奖,不同绩效等级对应不同的计算策略,如S级4倍工资,A级3倍,B级2倍。这种模式在JavaScript中展现出简洁的优势。
摘要由CSDN通过智能技术生成

定义

策略模式指的是定义一系列的算法,把它们一个个封装起来。将不变的部分和变化的部分隔开是每个设计模式的主题,策略模式也不例外,策略模式的目的就是将算法的使用与算法的实现分离开来。

通常一个基于策略模式的程序至少由两部分组成。第一个部分是一组策略类,策略类封装了具体 的算法,并负责具体的计算过程。 第二个部分是环境类 Context,Context 接受客户的请求,随后把请求委托给某一个策略类。

优点:

  • 策略模式利用组合、委托和多态等技术和思想,可以有效地避免多重条件选择语句。
  • 策略模式提供了对开放—封闭原则的完美支持,将算法封装在独立的 strategy 中,使得它 们易于切换,易于理解,易于扩展。
  • 在策略模式中利用组合和委托来让 Context拥有执行算法的能力,这也是继承的一种更轻 便的替代方案。

例子

以下有一个例子:根据绩效的等级计算年终奖,绩效为S的人年终奖有4倍工资,绩效为A的人年终奖有3倍工资,而绩效为B的人年终奖是2倍工资

java版

// 以下的都是策略(strategy)
var performanceS =function(){
   };
performanceS.prototype.calculate = function( salary ) {
   
    return salary * 4;
}

var performanceA = function(){
   };
performanceA.prototype.calculate = function( salary ) {
   
    return salary * 3;
}

var performanceB = function(){
   };
performanceB.prototype.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值