控制圈复杂度的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模式减少分支




猜你喜欢

转载自lakerhu.iteye.com/blog/2300864