Groovyのオブジェクト指向
Groovy本を読んでいてGroovyのオブジェクト指向機能は変わっていて面白いと思った。例えば以下。
- Groovy way to implement interfaces (http://groovy.codehaus.org/Groovy+way+to+implement+interfaces)
クロージャでインタフェースを実装するらしい。まだきちんと理解できていないが、もう少しGroovyを勉強してみようと思った。
マルチメソッドという仕組みもすばらしい。一見メソッドオーバーロードっぽいが、パターンマッチっぽくもある。以下はChapter7からの引用。
def oracle(Object o) { return 'object' } def oracle(String o) { return 'string' } Object x = 1 Object y = 'foo' assert 'object' == oracle(x) assert 'string' == oracle(y)
Genericeを使用するとどうなるかは書かれていなかったが、Javaで同じことを実装しようとするとinstanceofで分岐しないといけないらしい。Groovyは、引数の動的型に基づいてメソッドをディスパッチするらしい。やはり新しい言語は面白い。