如何优化【if else】的面条代码,我们一起来解决代码复杂度问题!

本文探讨了如何重构面条代码,包括if...if型和else if...else if型。通过基本函数拆分、查找表和职责链模式,有效降低代码复杂度,提高可读性。掌握这些策略,能帮助开发者更好地管理和优化业务逻辑。
摘要由CSDN通过智能技术生成

相信不少同学在维护老项目时,都遇到过在深深的 if else 之间纠缠的业务逻辑。面对这样的一团乱麻,简单粗暴地继续增量修改常常只会让复杂度越来越高,可读性越来越差,有没有固定的套路来梳理它呢?这里分享三种简单通用的重构方式。

什么是面条代码

所谓的【面条代码】,常见于对复杂业务流程的处理中。它一般会满足这么几个特点:

    ✿ 内容长

    ✿ 结构乱

    ✿ 嵌套深

我们知道,主流的编程语言均有函数或方法来组织代码。对于面条代码,不妨认为它就是满足这几个特征的函数吧。根据语言语义的区别,可以将它区分为两种基本类型:

 

if...if 型

这种类型的代码结构形如:

function demo (a, b, c) {

  if (f(a, b, c)) {

    if (g(a, b, c)) {

      // ...

    }

    // ...

    if (h(a, b, c)) {

      // ...

    }

  }

  if (j(a, b, c)) {

    // ...

  }

  if (k(a, b, c)) {

    // ...

  }

}

流程图形如:

它通过从上到下嵌套的 if,让单个函数内的控制流不停增长。不要以为控制流增长时,复杂度只会线性增加

我们知道函数处理的是数据,

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值