`
wap
  • 浏览: 74283 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

对Groovy提出的一个需求

阅读更多

同行有使用php的,可以灵敏的根据市场需求进行变化,在一定程度上,对于市场反应速度我个人认为优越于我们公司的现有的Struts+Sping+Hibernate的开发框架的。但是我们这套“重”框架相对来说却能做出在数据统计、运作上更加稳定和强大的功能。

究竟有没有一种方法把脚本的快速开发的特性和Java的功能强大结合起来的呢?当时找了不少shell脚本语言,从最早的perl到最为人熟知的JavaScript,从BSF看到Ruby Of Rails,从JRuby看到python,基本让我把资料都翻了,着重看了Bean Scritp Framwork的介绍和JavaScript、Groovy、Ruby的资料,最后被Groovy的资料介绍吸引了。当时的第一感觉就是这个语言很符合我的需求。

当时就在几天之内用groovy建一套游戏引擎——注意有一点,我希望的一个特性是这个脚本语言写出来的对象是可以继承的!但是经过实践,我错了!groovy的对象如果可以继承的话,要求被继承对象是已经被编译的,而不是我想象的我完全“脚本化”,举例说明,父类如下:

java 代码
  1. class  Parent  {   
  2.         String name   
  3.         int score   
  4.         int level   
  5. }  
这里我写一个子类继承Parent:
java 代码
  1. class  Children extends {   
  2.           boolean isNpc   
  3.           int condition   
  4.   
  5.           static void main(String [] args){   
  6.                       def child = new Children(name: "Test Npc",score:0,level:0,isNpc : true,condition : 13 )   
  7.   
  8.           }   
  9. }  

这套代码如果你单纯用Groovy Children.groovy 是不能执行的,而必须先用groovyc去编译好了Parent后,再把Parent$.class的路径用在执行时的环境中去。

这样如果我的Parent需要改变时,导致应用不得不重新启动、加载,并没有达到让业务不间断运行的要求。就是说Groovy的“脚本动态”的层次只能停留在最高层的那个类。那个类无论你怎么改,确实是即改即生效。

所以,Groovy在这方面需要改进:让父类同样动态脚本化!

(也许是我方法不对,如果有朋友对此有不同意见,请留言交流)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics