Sto per avviare un progetto di app Web sociale.Interfacce in Groovy
Mentre stavo progettando le classi, ho deciso di definire interfacce come "commentabili" o "simpatiche" per usarle quando necessario.
Eppure non riuscivo a capire come implementarlo in Groovy, che sono in fase di apprendimento.
L'esempio che segue è dalla documentazione Groovy,
interface X
{ void f(); void g(int n); void h(String s, int n); }
x = [ f: {println "f called"} ] as X
x.f()
//x.g() // NPE here
dire che questo è uno dei miei interfacce, e voglio usare una classe chiamata B per implementare questa interfaccia ..
devo solo dì B come X, nel relativo controller?
Come farlo nel livello dominio? Se una classe Z è, diciamo "commentabile", dovrei semplicemente creare una classe di dominio chiamata Comment e dire che Z ha qualche commento? e utilizzare l'interfaccia nel livello controller?
Qual è il modo Groovy per farlo correttamente? Sono un po 'confuso e un piccolo chiarimento sarebbe davvero bello.
Grazie in anticipo
Ne sei sicuro che non ho visto nessun singoli esempi come questo ancora non è sicuro attrezzi parola chiave esiste Groovy – add9
modo per quanto riguarda la domanda di design se posso definire un'interfaccia come in Java, implementarla nel controller e utilizzare hasMany nel dominio sarebbe una cosa corretta da fare? – add9
C'è poco vantaggio nell'usare le interfacce in Groovy (o Grails) dato che puoi chiamare qualunque metodo tu voglia - Groovy supporta la "digitazione anatra". Alcuni plugin li usano ma molto più come interfacce "marker" senza metodi, e sono solo usati per classificare i tipi in modo da poter controllare "instanceof MyInterface" e agire di conseguenza. Ma a parte questo non c'è davvero alcun motivo per usare le interfacce. –