Domanda

ho una confusa comprensione di gin, ma averlo a lavorare per i relatori per via parenterale, ecc.

Sto cercando di iniettare un self-made di classe "Utente" in tutti i miei presentatori al fine di ottenere il momento utente connesso.

Ho aggiunto @Inject al costruttore sulla mia classe User, User e aggiunto al mio modulo GIN ... ma a parte questo, io sono totalmente perso. Devo associarlo al mio app presentatore (provato, ma ottengo un errore dal momento che l'utente non si estende il mio AppPresenter)? Come un Singleton? E 'questo anche il modo giusto per ottenere passare questo dati in giro?

Odio pubblicare questo qui (non in cerca di lavoro gratuito), ma non riesco a trovare un decente tutorial / esempio su questo altrove.

Molto grazie in anticipo.

È stato utile?

Soluzione

Vedo due possibilità:

  • iniezione con la sorgente essendo un href="http://code.google.com/p/google-guice/wiki/ProvidesMethods" rel="nofollow noreferrer"> @Provides metodo o un Provider . Tuttavia, il problema è come passare l'utente attualmente connesso a questi metodi, dal momento che lo stato globale è un no-no. Una possibile soluzione sarebbe passato tramite il bus evento, ma a questo punto sembra che è un pò sconfigge il punto di DI (iniettare l'utente attualmente connesso è IMHO non il ruolo di DI).
  • passare intorno all'utente tramite il bus evento. Creare un evento personalizzato che viene attivato quando l'utente accede a / modifiche e alcuni presentatori ascolto per quell'evento (dopo tutto, non tutti i presentatori devono sapere l'utente corrente).

Io preferisco e utilizzare il secondo approccio - mentre DI è impressionante, utilizzando nel modo da te descritto sembra un po hacker a me. Consiglio vivamente di verificare la Guice documentazione - Gin è fondamentalmente Guice avvolto bene a lavorare con GWT, quindi il nucleo è la stessa. Per alcuni altri puntatori come utilizzare efficacemente DI e, in generale, scrivere codice verificabile, vi raccomando vivamente blog Misko di Hevery e il guida alla scrittura di codice verificabile ha messo lì (utilizzato internamente da Google ).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top