控制圈复杂度的10种重构技术总结

一、Composing Methods(重新组织你的函数)
  1.Extract Method(提炼函数)
     分为不同的step步骤进行处理,主干逻辑方法控制在7个以内
     将代码放进一个独立函数中,并让函数名称解释该函数的用途
  2.Substitute Algorithm(替换你的算法)
将函数本体替换为另一个更清晰、简化的算法 ,如多值匹配candidates.contains

二、Simplifying Conditional Expressions(简化条件表达式)
  3.Decompose Conditional(分解条件式)
     从if、then、else三个段落中分别提炼出独立函数
  4.Consolidate Conditional Expression(合并条件式)
     将多个条件合并 为 c1||c2&&c3,并提炼为一个函数
  5.Consolidate Duplicate Conditional Fragments(合并重复的条件片断)
     多个条件都执行的代码,将重复代码搬移到条件式之外
  6.Remove Control Flag(移除控制标记)
     以break和return取代控制标记

三、Making Method Calls Simpler(简化函数调用)
  7.Separate Query from Modifier(将查询函数和修改函数分离)
     单一职责原则,建立两个不同的函数,其中一个负责查询,另一个负责修改
  8.Parameterize Method(令函数携带参数)
      通用函数,建立单一函数,以参数表达那些不同的值
   9.Replace Parameter with Explicit Methods(以明确函数取代参数)
   多个if对应对个函数;  针对该参数的每一个可能值,建立一个独立函数
四、针对面向对象编程:
  10.Replace Conditional with Polymorphism(以多态取代条件式)
     将整个条件式的每个分支放进一个子类的重载方法中,然后将原始函数声明为抽象方法
     面向接口编程,一个接口多种实现;利用state模式减少分支
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值