Question

J'ai une compréhension floue de GIN, mais avoir à travailler pour les présentateurs d'injection, etc.

Je suis en train d'injecter une classe « Utilisateur » self-made dans tous mes présentateurs afin d'obtenir l'utilisateur actuellement connecté.

J'ai ajouté @Inject au constructeur de ma classe User, et a ajouté l'utilisateur à mon module GIN ... mais à part ça, je suis tout à fait perdu. Est-ce que je lie à mon application présentateur (essayé, mais je reçois une erreur puisque l'utilisateur ne va pas mon AppPresenter)? En tant que singleton? Est-ce même la bonne façon de se transmettre ces données autour?

Je déteste poster ici ce (ne cherche pas pour les devoirs gratuit), mais je ne peux pas trouver un tutoriel / exemple décent sur nulle part ailleurs.

Une grande partie grâce à l'avance.

Était-ce utile?

La solution

Je vois deux possibilités:

    Procédé
  • d'injection avec la source étant un @Provides ou un fournisseur . Cependant, le problème est de savoir comment passer le utilisateur actuellement connecté à ces méthodes, car l'état global est un non-non. Une solution possible serait passer via le bus de l'événement, mais à ce stade, il semble que cela va à l'encontre un peu le point de l'ensemble de DI (l'injection utilisateur actuellement connecté est à mon humble avis pas le rôle de DI).
  • passer autour de l'utilisateur via le bus de l'événement. Créer un événement personnalisé qui est déclenché lorsque l'utilisateur se connecte à / changements, et certains présentateurs écouter cet événement (après tout, tous les présentateurs doivent connaître l'utilisateur actuel).

Je préfère utiliser et la seconde approche - tout en DI est génial, en utilisant de la façon que vous avez décrit me semble un peu hackish à. Je recommande vivement de vérifier le documentation Guice - Gin est essentiellement Guice enveloppé bien à travailler avec GWT, de sorte que le noyau est le même. Pour certains autres pointeurs comment utiliser efficacement DI et, en général, écrire le code testable, je recommande fortement Misko blog de Hevery et guide pour l'écriture de code testable il a mis là-bas (utilisé en interne par Google ).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top