控制圈复杂度的9种重构技术总结
可以直接降低圈复杂度的9种重构技术(针对结构化编程):
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对应对个函数; 针对该参数的每一个可能值,建立一个独立函数 --- Refactoring: Improving the Design of Existing Code 针对面向对象编程: 10.Replace Conditional with Polymorphism(以多态取代条件式) 将整个条件式的每个分支放进一个子类的重载方法中,然后将原始函数声明为抽象方法 面向接口编程,一个接口多种实现;利用state模式减少分支
转载于:https://my.oschina.net/itnms/blog/418770