`
banner
  • 浏览: 52680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用重构降低圈复杂度(Cyclomatic Complexity)

阅读更多
什么是Cyclomatic Complexity,以及其计算方法,这里不做讨论。
圈复杂度可以用PMD(http://pmd.sourceforge.net/)分析出,它有相应的eclipse plug-in。

一般我们会用重构来降低圈复杂度,重构办法有:
1、Extract method
2、合并条件分支,合并后可用boolean变量来替换条件分支中的语句。例如:
   //合并后的条件分支
   //    if (((Name)names[i]).getKey() > ((Name)names[j]).getKey() && b>a && c>b) {
   //       md(names, i, j);
   //    }
   boolean ddd=((Name)names[i]).getKey() > ((Name)names[j]).getKey() && b>a && c>b;
   if (ddd) {
      md(names, i, j);
   }
3、利用多态减少分支
4、利用state模式减少分支
....

总之其原则是分而治之,越少越好。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics