JavaScript设计模式之策略模式

所谓“条条道路通罗马”,在现实中,为达到某种目的往往不是只有一种方法。比如挣钱养家:可以做点小生意,可以打分工,甚至还可以是偷、抢、赌等等各种手段。在程序语言设计中,也会遇到这种类似的情况,要实现某种功能可以有多种方案选择。比如,在很多地图类软件上,你想从A地点到达B地点时,为你提供几种交通工具的选择,可以查看每种交通工具的所需费用和时间。在程序语言设计中,把这种设计模式叫做策略模式。

 

策略模式的定义:策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。

 

主要解决问题:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。

 

从上面两点可以知道,策略模式是通过定义一系列的算法,并对其进行封装,使其可以相互替换使用,目的是消除多层if...else语句嵌套的问题。这里的定义一系列的算法的意思是:你可以将每一种方案封装成函数或者是类的形式。

先看个输出今天是星期几的例子:

//获取当天是星期几函数 function getDay(day){ if(day === 0){ console.log('今天是星期日'); } if(day === 1){ console.log('今天是星期一'); } if(day === 2){ console.log('今天是星期二'); } if(day === 3){ console.log('今天是星期三'); } if(day === 4){ console.log('今天是星期四'); } if(day === 5){ console.log('今天是星期五'); } if(day === 6){ console.log('今天是星期六'); } }; var day = new Date().getDay(); getDay(day);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdpdz.html