美文网首页CodeReview
CodeReview之多If语句优化

CodeReview之多If语句优化

作者: Mstian | 来源:发表于2021-02-06 18:42 被阅读0次
    策略模式重构多if分分支逻辑

    如上图代码块,jumpToDoc函数的功能是根据传入的参数判断执行不同的逻辑,这样的话 就会有如下的代码:

    function jumpToDoc(params) {
      if(params === "demand") {
        // 执行demand功能
      } else if (params === "prototype") {
        // 执行prototype功能
      }
      // ... ... 更多逻辑
    }
    

    这样会导致一个问题就是该函数会越来越臃肿,最终不易维护。

    使用策略模式将逻辑分为策略类与环境类,策略类提供一系列策略算法,环境类对外外提供调用接口,根据不同的接口去调用不同的算法,这样我们在遇到新的type时就不必去修改主函数逻辑,而去维护策略类就好了。

    这种方法可以避免多分支if语句,是优化代码的一种方法。当然策略类的数据结构也不一定得用Object,也可以用Array或者Map等。

    最近正在读一本设计模式的书《JavaScript设计模式与开发实战》感觉写的很好墙裂推荐哈

    相关文章

      网友评论

        本文标题:CodeReview之多If语句优化

        本文链接:https://www.haomeiwen.com/subject/cgpotltx.html