Question

Nous utilisons le modèle de MVP et GWT et je me demande comment et quand l'injection de dépendance doit être utilisé.

Nous avons un App Controller, présentateurs, vues et le code modèle. À la lecture du tutoriel GIN http://code.google.com/p / google-gin / wiki / GinTutorial # WHB il semblerait que vous devriez l'utiliser au plus haut niveau possible (donc dans le App Controller).

Dois-je utiliser pour créer mes présentateurs, je peux faire injector.getPresenter ();

Était-ce utile?

La solution

Il n'y a pas de place nécessaire dans votre application pour utiliser l'injection de dépendance. Vous pouvez l'utiliser pour un point de vue ou d'un module, ou l'utiliser partout. De toute façon, il n'y a aucune raison de ne pas faire l'injecteur disponible au plus haut niveau possible (à savoir votre App Controller).

pour lorsque pour utiliser l'injection de dépendance, je dirais que chaque fois que vous voulez tester un composant de votre système sans avoir à charger les dépendances réelles poids-lourds.

Envisager d'essayer de vérifier que cette méthode retourne 3:

public int returnsThree() {
  new WeatherChecker().checkTheWeather();
  return 3;
}

Vous ne seriez pas en mesure de sans charger et courir cette grande dépendance de vérification temps, ce qui signifie l'accès au réseau, délai d'attente / gestion des pannes, etc.

Ceci est beaucoup mieux:

public int returnsThree(WeatherChecker dep) {
  dep.checkTheWeather();
  return 3;
}

De cette façon, votre test peut simplement passer dans une maquette de cette dépendance, comme:

public class MockWeatherChecker extends WeatherChecker {
  @Override
  public void checkTheWeather() {
    // do nothing
  }
}

Si un composant n'a pas de dépendances, ce qui est peu probable, alors vous ne pas besoin d'utiliser l'injection de dépendance pour elle.

Les présentateurs ont généralement une dépendance à la vue, qui peut facilement être raillé pour des tests plus rapides (test JUnit, pas de tests GWT). Ils peuvent aussi dépendre d'un EventBus, ou quelque chose de similaire, qui peut facilement être émulés de se concentrer sur le test de la logique du présentateur.

injection de dépendance est de faciliter un test autant qu'il est de séparer la responsabilité.

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