1
混在這裏Groovy的代表團文章(http://groovy.codehaus.org/Delegate+transformation),我對下面的代碼混淆:澄清關於Groovy代表團繼承
概述後:
import java.text.SimpleDateFormat
class Event {
@Delegate Date when
String title, url
}
def df = new SimpleDateFormat("yyyy/MM/dd")
def gr8conf = new Event(title: "GR8 Conference",
url: "http://www.gr8conf.org",
when: df.parse("2009/05/18"))
def javaOne = new Event(title: "JavaOne",
url: "http://java.sun.com/javaone/",
when: df.parse("2009/06/02"))
assert gr8conf.before(javaOne.when)
文章解釋說,下面就可以使用:
class Event extends Date {
@Delegate Date when
String title, url
}
但是,在下面這個例子中,特別是在繼承和組合(代理) 「Prefer composition over inheritance?」的背景?此外,這不會產生衝突(即哪些方法「委託」給委託日期,哪些方法被調用到事件繼承的Date類中?