Poniższy przykład użycia metody sendMail dostarczonej przez wtyczkę grails pojawia się w this book.Parametry groovy zamknięcia
sendMail {
to "[email protected]"
subject "Registration Complete"
body view:"/foo/bar", model:[user:new User()]
}
Rozumiem, że kod w {} jest zamknięciem przekazanym do sendmaila jako parametrem. Rozumiem również, że to
, subject
i body
są wywołania metod.
Próbuję dowiedzieć się, co kod, który implementuje metodę Sendmail będzie wyglądać, a mój najlepszy przypuszczenie jest coś takiego:
MailService {
String subject
String recipient
String view
def model
sendMail(closure) {
closure.call()
// Code to send the mail now that all the
// various properties have been set
}
to(recipient) {
this.recipient = recipient
}
subject(subject) {
this.subject = subject;
}
body(view, model) {
this.view = view
this.model = model
}
}
Czy to rozsądne, albo ja czegoś brakuje? W szczególności, czy metody przywoływane w zamknięciu (to
, subject
, body
), muszą być członkami tej samej klasy co sendMail
?
Dzięki Don