L'utilisation de Google Guice pour simplifier les tests unitaires n'est qu'un avantage de haut niveau. Certaines personnes n'utilisent même pas les tests unitaires dans leur projet. Les gens ont utilisé Spring/Dependency Injection plus que pour les tests unitaires.
L'avantage de bas niveau de l'utilisation de Google Guice est une question de cohésion dans votre application, vos classes dans le projet peuvent être vaguement couplées entre elles. Je peux fournir une classe pour une autre classe sans qu'ils soient dépendants l'un de l'autre.
Considérons cet exemple:
public class A{
}
public class B{
A a = new A();
}
classe B sera étroitement associée à la classe A, ou en d'autres termes, il dépend de l'existence de la classe A.
Mais avec Guice je place le rendre couplé de façon lâche comme ceci:
public class B{
private A a;
@Inject
public B(A a){
this.a = a;
}
}
classe B est maintenant couplé de façon lâche à A, et Guice est responsable de fournir l'instance de A au lieu de B avoir à instancier . Avec cela, vous pouvez l'étendre pour fournir une interface de A à B, et l'implémentation peut être un objet Mock si vous voulez tester vos applications. Cela dit, nous ne parlons que des avantages de l'injection de dépendances jusqu'à présent. Au-delà de l'injection de dépendance, les avantages de l'utilisation de Google Guice est:
- Guice a une implémentation très propre du constructeur Injection. Comme vous pouvez le voir dans l'exemple, vous ajoutez simplement le constructeur d'annotation @Injection.
- Guice possède également une Injection Setter utilisant la même annotation. Cela dit, l'injection basée sur les annotations est une approche très propre par rapport à l'injection basée sur XML comme une autre implémentation DI. La totalité de l'injection et de la configuration des dépendances utilise Java, ce qui vous garantit une sécurité de type par défaut dans votre application.
- Guice a une implémentation très légère de la programmation orientée aspect (ou peut-être vous pouvez l'appeler comme un wrapper à l'implémentation AOPAlliance AOP). Et la bonne chose est que cela ne génère pas de souches ou quoi que ce soit.
Voilà l'aperçu de celui-ci.Mais au fur et à mesure que vous approfondissez Guice, il y a tellement plus de bonnes choses à ce sujet. Un simple exemple réel est si vous utilisez GWT with MVP implementation, les composants/widgets dans votre application GWT est très faiblement couplée et pas étroitement intégrés les uns aux autres.
Que voulez-vous dire exactement par "refactoring-adverse string identifiers"? Pourriez-vous s'il vous plaît développer un peu? – Geek