Perché le azioni sui graal dovrebbero essere dichiarate come metodi anziché come chiusure e che differenza fa?

In Grails 2.0 quali sono i nuovi http://grails.org/doc/2.0.0.RC1/guide/introduction.html#whatsNew
dice:
1.1.3 Web Features Controller Actions as Methods It is now possible to define controller actions as methods instead of using closures as in previous versions of Grails. In fact this is now the preferred way of expressing an action.
Per esempio:

 // action as a method def index() { } // action as a closure def index = { } 

Perché questo è importante? Che differenza fa?

AGGIORNAMENTO: Ho trovato questa discussione che parla molto dell’ottica e di alcune cose piuttosto pelose. http://grails.1312388.n4.nabble.com/Controller-actions-methods-or-closures-was-Re-grails-dev-Statically-typed-meta-programing-td3048287.html

Credo che la mia domanda potrebbe essere anche questa: quale vantaggio hanno le chiusure per le azioni?

La risposta è qui

Dal link sopra

I metodi di leva anziché le proprietà di chiusura presentano alcuni vantaggi:

  1. Memoria efficiente
  2. Consenti l’uso di controller stateless (scope singleton)
  3. Puoi sovrascrivere le azioni da sottoclassi e chiamare il metodo superclass sovrascritto con super.actionName ()
  4. I metodi possono essere intercettati con meccanismi di proxy standard, qualcosa che è complicato da fare con Closures dal momento che sono campi.

C’è anche una domanda simile e groovy che ha qualche dettaglio in più