实战 Groovy: 用 Groovy 减少代码冗余 - 编程入门网
型用清单 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |