WEB开发网
开发学院软件开发Java 演化架构与紧急设计: 积累惯用模式 阅读

演化架构与紧急设计: 积累惯用模式

 2010-01-20 00:00:00 来源:WEB开发网   
核心提示: ckjm 报告的圈复杂度数字表示这个类中所有方法的复杂度之和,我想确定是什么使这个类如此复杂,演化架构与紧急设计: 积累惯用模式(4),所以需要各个方法的复杂度数字,对这个类运行开源圈复杂度工具 JavaNCSS,将参数类型发送到实际的 Struts 类和组件,该代码中存在很多结构性重复,可得到

ckjm 报告的圈复杂度数字表示这个类中所有方法的复杂度之和。我想确定是什么使这个类如此复杂,所以需要各个方法的复杂度数字。对这个类运行开源圈复杂度工具 JavaNCSS,可得到图 4 所示的结果:


图 4. UIBean 类中各个方法的复杂度数字
演化架构与紧急设计: 积累惯用模式

到目前为止,最复杂的方法是 evaluateParams(),其复杂度为 43(也是代码行数最多的)。该方法显然是用于处理常见的作为请求的一部分传递给 Struts 控制器的额外参数,将参数类型发送到实际的 Struts 类和组件。该代码中存在很多结构性重复,如清单 1 所示:


清单 1. evaluateParams() 方法的部分内容,其中有结构性重复

if (label != null) { 
  addParameter("label", findString(label)); 
} 
 
if (labelPosition != null) { 
  addParameter("labelposition", findString(labelPosition)); 
} 
 
if (requiredposition != null) { 
  addParameter("requiredposition", findString(requiredposition)); 
} 
 
if (required != null) { 
  addParameter("required", findValue(required, Boolean.class)); 
} 
 
if (disabled != null) { 
  addParameter("disabled", findValue(disabled, Boolean.class)); 
} 
 
if (tabindex != null) { 
  addParameter("tabindex", findString(tabindex)); 
} 
 
if (onclick != null) { 
  addParameter("onclick", findString(onclick)); 
} 
// much more code elided for space considerations 

上一页  1 2 3 4 5 6 7 8  下一页

Tags:演化 架构 紧急

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接