WEB开发网
开发学院软件开发Java 实战 Groovy: 使用 Groovy 模板进行 MVC 编程 阅读

实战 Groovy: 使用 Groovy 模板进行 MVC 编程

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 清单 17. 使用模板映射重构原来的代码fle=newFile("report.tmpl")binding=["clazzes":clzzez]engine=newSimpleTemplateEngine()template=engine.createTe


清单 17. 使用模板映射重构原来的代码
fle = new File("report.tmpl") 
binding = ["clazzes": clzzez] 
engine = new SimpleTemplateEngine() 
template = engine.createTemplate(fle).make(binding) 
nfile.withPrintWriter{ pwriter | 
 pwriter.println template.toString() 
} 

现在,清单 17 中的代码对您来说太陈旧了。我利用了清单 16 中的 列表,并将其放入 binding 对象。然后读取 nfile 对象,并将相应的输出内容从 清单 14 中的映射模板写入文件中。

在将这些内容都放入清单 18 之前,您可能希望返回 清单 13 最后看一眼开始时使用的那段蹩脚的代码。下面是新的代码,您可以进行比较一下:


清单 18. 看,新的代码!
/** 
 * 
 */ 
buildReport(bsedir){ 
 ant = new AntBuilder() 
 scanner = ant.fileScanner { 
  fileset(dir:bsedir) { 
   include(name:"**/*class.md5.txt") 
  } 
 } 
 rdir = bsedir + File.separator + "xml" + File.separator 
 file = new File(rdir) 
 if(!file.exists()){ 
  ant.mkdir(dir:rdir) 
 } 
 nfile = new File(rdir + File.separator + "checksum.xml") 
 clssez = [] 
 for(f in scanner){ 
  f.eachLine{ line | 
  iname = formatClassName(bsedir, f.path) 
  clssez << new CheckSumClass(name:iname, value:line) 
  } 
 } 
 fle = new File("report.tmpl") 
 binding = ["clazzes": clzzez] 
 engine = new SimpleTemplateEngine() 
 template = engine.createTemplate(fle).make(binding) 
 nfile.withPrintWriter{ pwriter | 
  pwriter.println template.toString() 
 } 
} 

现在,虽然我没有声明要编写非常漂亮的代码,但是这些代码当然不会像原来的代码一样 糟糕 了。回顾一下,我所干的事情不过是将一些蹩脚的 println 替换成 Groovy 的更精巧的模板代码。(一些熟悉重构的人可能会说我应该使用 Extract Method 进一步对代码进行优化。)

结束语

在本月的教程中,我希望已经向您展示了 Groovy 的 视图。更明确地 说,当您需要快速开发一些需要视图的简单程序时,Groovy 的模板框架是普通 Java 编码的一种很好的替代品。模板是很好的一种抽象,如果使用正确,它可以极大地降低应用程序的维护成本。

下一个月,我将向您展示如何使用 Groovy 来构建使用 Groovlets 的 Web 应用程序。现在,享受使用 Groovy 的模板开发吧!

本文示例源代码或素材下载

上一页  5 6 7 8 9 10 

Tags:实战 Groovy 使用

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