爱心技术专栏专题

yMOP,实现传说中Java7.0的XML嵌入式语法

摘录:java 来源:java 加入时间:2006年08月19日
摘要:
yMOP,实现传说中Java7.0的XML嵌入式语法
y MOP,实现传说中Java7.0的XML嵌入式语法
Groovy的Team Leader-- Guillaume Laforge说,MOP(Meta Object Protocol)是他最喜欢的Groovy特性。
   
    使用MOP可以简单的对属性和方法进行拦截和解释,intercept 已经因为AOP而被大家熟悉。在Groovy里,通过重载GroovyObject的g…

转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info14/a_a6b4b6a86798438d.htm

yMOP,实现传说中Java7.0的XML嵌入式语法

站点:爱心种子小博士 关键字:yMOP,实现传说中Java7.0的X

   
y MOP,实现传说中Java7.0的XML嵌入式语法
Groovy的Team Leader-- Guillaume Laforge说,MOP(Meta Object Protocol)是他最喜欢的Groovy特性。
   
    使用MOP可以简单的对属性和方法进行拦截和解释,intercept 已经因为AOP而被大家熟悉。在Groovy里,通过重载GroovyObject的get/setProperty()函数和invokeMethod()函数,可以加入自己的hook和behavior,比Java简单的多的实现proxy和delegator。

    而更重要的是,MOP函数可以充当领域语言解释者的角色,拦截一些在Class里根本没有定义的属性、方法来进行解释,这就是Groovy里XML嵌入式语法的魔法根源。
     比如如下的xml

    <shop><book name="foo"><writer>庄表伟</writer></book></shop>

    可以用groovy这样访问

    println node.book.writer.text()

    node类当然没有book,writer这样属于领域语言的属性,但通过重载getPropety(String name)函数,node类可以把对book,writer属性的访问,转换成相应DOM节点的访问。
    实现请参看org.codehaus.groovy.sandbox.util.XMLList类的public Object getProperty(final String elementName)函数。

    Guillaume Laforge说,Its an aspect of Groovy which makes the language very powerful, but rare are those who really know and use it. 



客户服务中心信箱:[email protected] [email protected] 网站地图

声明

合作伙伴: