Groovy 元对象协议Mop(一)
在java中,我们可以在运行时探索程序的结构,以及程序的类和方法,方法接收的参数等。然后我们仍然局限于所创建的静态结构,我们无法在运行时修改一个对象的类型,或是让他动态获取行为。如果我们可以基于应用当前的输入,动态的添加方法和行为,代码会变得更加灵活。我们的创造力和开发效率将大大提升。那么,Groovy就提供了这种功能。 概念 元编程(metaprogramming)意味着编写能够操作程序的程序。包括程序自身。像Groovy这样的动态语言通过元对象协议(MetaObject Protocol, MOP),提供了这种能力。 利用MOP能够干什么呢 利用Groovy的MOP,创建类、编写单元测试和引入模拟对象都很容易。 在groovy中,利用MOP可以动态的调用方法,甚至在运行时合成类和方法。这种特性给我们的感觉就是对象顺利的修改了他的类。比如Grails和GORM就使用了该特性,为数据查询合成方法,借助Mop,在Groovy中可以创建内部的领域特定语言。 这篇文章我们先讨论Groovy对象的组成。 Groovy对象的组成 Groovy对象是带有附加功能的Java对象。在Groovy中,G....