WEB开发网
开发学院软件开发Java 追求代码质量: 用 AOP 进行防御性编程 阅读

追求代码质量: 用 AOP 进行防御性编程

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 更多的 OVal 约束条件OVal 也支持在方法调用前或后对类成员进行预先验证,这种机制具有限制针对特定约束条件的重复条件测试的好处,追求代码质量: 用 AOP 进行防御性编程(9),如集合大小或之前讨论过的非 null 的情况,例如,会抛出一个异常,因为没有了要评估的类,在清单 10 中,我使

更多的 OVal 约束条件

OVal 也支持在方法调用前或后对类成员进行预先验证。这种机制具有限制针对特定约束条件的重复条件测试的好处,如集合大小或之前讨论过的非 null 的情况。

例如,在清单 10 中,我使用 HierarchyBuilder 定义了一个为类层次构建报告的 Ant 任务。请注意 execute() 方法是如何调用 validate 的,后者会依次验证 fileSet 类成员是否含值;如果不含,会抛出一个异常,因为没有了要评估的类,该报告不能运行。


清单 10. 带条件检验的 HierarchyBuilderTask
public class HierarchyBuilderTask extends Task { 
 private Report report; 
 private List fileSet; 
 
 private void validate() throws BuildException{ 
 if(!(this.fileSet.size() > 0)){ 
  throw new BuildException("must supply classes to evaluate"); 
 } 
 if(this.report == null){ 
  this.log("no report defined, printing XML to System.out"); 
 } 
 } 
 
 public void execute() throws BuildException { 
 validate(); 
 String[] classes = this.getQualifiedClassNames(this.fileSet); 
 Hierarchy[] hclz = new Hierarchy[classes.length]; 
 
 try{ 
  for(int x = 0; x < classes.length; x++){ 
  hclz[x] = HierarchyBuilder.buildHierarchy(classes[x]);       
  }     
  BatchHierarchyXMLReport xmler = new BatchHierarchyXMLReport(new Date(), hclz); 
  this.handleReportCreation(xmler); 
 }catch(ClassNotFoundException e){ 
  throw new BuildException("Unable to load class check classpath! " + e.getMessage()); 
 }  
 } 
//more methods below.... 
} 

上一页  4 5 6 7 8 9 10  下一页

Tags:追求 代码 质量

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