Следующий пример использования метода sendMail, предоставляемого почтовым плагином grails, представлен в эту книгу.
sendMail {
to "[email protected]"
subject "Registration Complete"
body view:"/foo/bar", model:[user:new User()]
}
Я понимаю, что код внутри {} - это закрытие, которое передается в sendMail в качестве параметра. Я также понимаю, что to
, subject
и body
- это вызовы методов.
Я пытаюсь понять, как будет выглядеть код, реализующий метод sendMail, и, по моему мнению, примерно так:
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
}
}
Это разумно, или я что-то упускаю? В частности, являются ли методы, вызываемые внутри замыкания (to
, subject
, body
), обязательно членами того же класса, что и sendMail
?
Спасибо дон