快速业务通道

实战 Groovy: 用 Groovy 减少代码冗余 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
型用清单 9 中的配置文件创建了一 个 Spring 的 ClassPathXmlApplicationContext 实例,然后,请求自行车商店 视图的实例:

清单 10. Java 版本下调用 Spring 创建自行车商店视图

import org.springframework.context.support.ClassPathXmlApplicationContext;public class RentABikeAssembler {   public static final void main(String[] args) {      // Create a Spring application context object      ClassPathXmlApplicationContext ctx =        new ClassPathXmlApplicationContext("RentABike-context.xml");      // retrieve an object from Spring and cast to a specific type      CommandLineView clv = (CommandLineView)ctx.getBean("commandLineView");      clv.printAllBikes();   }}

请注意Java 版的清单 10 中,用以请求一个命令行视图实例的对 Spring 的 调用要求向一个支持 printAllBikes() 方法的对象类型强制转换。在本例中,由 Spring 导出的对象将被强制转换为 CommandLineView。

有了 Groovy 及其对 duck-typing 的支持,将不再需要强制转换。只需确保 由 Spring 返回的类能够对合适的方法调用(printAllBikes())作出响应。

清单 11. Groovy 版的 Spring 组合件

import org.springframework.context.support.ClassPathXmlApplicationContextclass RentABikeAssembler {  public static final void main(String[] args) {    // Create a Spring application context object    def ctx = new ClassPathXmlApplicationContext("RentABike-context.xml")    //Ask Spring for an instance of CommandLineView, with a    //Bike store implementation set by Spring    def clv = ctx.getBean("commandLineView")    //duck typing again    clv.printAllBikes()  }}

正如在清单 11 中看到的那样,在 Groovy 中,duck-typing 对减少冗余的贡 献不仅体现在无需声明接口即可支持由 Spring 自动配置对象,其贡献还体现在 简化了对完全配置的 bean 的使用(一旦它从 Spring 容器中返回)。

与 Groovy 相协调

至此,希望我已经阐明了 Groovy 的强大功能及其如何能如此深远地改变源代 码的性质。与上述 Java 样例相比,Groovy 代码更简短也更易理解。任何人,无 论是经验丰富的 Java 架构师还是非 Java 程序员,都能轻易地掌握 Groovy 代 码的意图。Groovy 及其对动态类型的支持减少了要管理的文件。总之,使用 Groovy 减少了在典型的 Java 程序中所常见的大量冗余。这实在是福音啊!

来源:

http://www.ibm.com/developerworks/cn/java/j-pg09196.html

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号