15. Why Goovy?
• 更多简洁代码的示例
– System.out.println => println
– 可选的return
– GString: "${i++}: $it"
– GroovyBean(左)让JavaBean(右)更简洁
class MyBean{
class MyBean{ private int a
int a public int getA(){ return a}
} public void setA(int a){this.a = a}
}
21. Why Goovy?
• Duck Typing:更高级的多态
– 如果走路像鸭子,叫声像鸭子,那它就是鸭子
class Rectangle{
def draw(){
println "This is rectangle"
}
}
class Square{
def draw(){
println "This is Square"
}
}
def draw(painter){
painter.draw()
}
draw(new Rectangle())
draw(new Square())
22. Why Goovy?
• GPars:并发编程其实也不是那么难 :)
– 从Groovy 1.8起,作为扩展包随Groovy发布。
– 对多种并发编程模型提供了简洁的DSL:
• Actor、STM、Agent、CSP、Data Flow等
final Actor actor = new DynamicDispatchActor({
when {String msg -> println 'A String'; reply 'Thanks'}
when {Double msg -> println 'A Double'; reply 'Thanks'}
when {msg -> println 'A something ...'; reply 'What was that?'}
})
actor.start()