Question

Je lis souvent sur l'injection de dépendance et j'ai fait des recherches sur Google et je comprends en théorie ce qu'il peut faire et comment cela fonctionne, mais j'aimerais voir une base de code qui l'utilise (Java / guice serait préféré) .

Quelqu'un peut-il m'indiquer un projet open source, où je peux voir, comment il est vraiment utilisé? Je pense que parcourir le code et voir toute la configuration me montre plus que les extraits habituels dans les articles d'introduction que vous trouvez sur le Web. Merci d'avance!

Était-ce utile?

La solution

Je comprends que vous soyez en Java-land, mais dans l’espace .NET, il existe plusieurs applications open-source écrites à l’aide d’une inversion du conteneur de contrôle. Découvrez CodeCampServer , dans lequel le module d'interface utilisateur ne fait pas référence à la résolution de dépendance. module. Il existe un HttpModule qui fait le travail. (un HttpModule est simplement une bibliothèque externe que vous pouvez brancher et qui gère les événements dans ASP.NET. Dans CodeCampServer, le projet d'interface utilisateur charge ce DependencyRegistrarModule au moment de l'exécution, sans aucune référence à la compilation.)

Autres conseils

Le protocole Wave Server est mon exemple d'application préféré.

J'ai eu un peu de mal avec ce problème précis. C'est si abstrait et si simple que j'ai toujours eu peur de "mal faire".

Je l’avais utilisé dans le projet principal, qui dépend de d’autres projets, car le module Guice qui définit les liaisons faisait partie du projet principal.

J'ai finalement compris que les bibliothèques devraient fournir les modules eux-mêmes. À ce stade, vous ne pouvez dépendre que d'une instance d'un module (et non d'une spécifique) et des interfaces liées par celle-ci.

Mieux encore, vous pouvez utiliser le nouveau ServiceLoader dans Java 6 pour localiser et installer automatiquement tous les modules Guice disponibles sur le chemin d'accès aux classes. Ensuite, vous pouvez permuter les dépendances simplement en modifiant le chemin d'accès aux classes (db-real.jar ou db-mock.jar).

Je pense que l'injection de dépendance a un moyen de disparaître de la vue si elle est utilisée correctement, ce sera simplement un moyen d'initialiser / de connecter votre application. main, et non à l’injection de dépendance nue.

Edit: je vous conseillerais plutôt de commencer à l'utiliser qu'au lieu d'essayer de trouver des exemples, puis de revenir et de poser des questions ici si vous ne parvenez pas à faire fonctionner des choses comme vous le pensez bien: -)

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