2010-12-07 32 views
0

Nous essayons de découpler notre code et sommes tombés sur ce Guice. Cela semble le meilleur choix. Je ne l'ai pas utilisé. Mon doute est que nous pouvons l'utiliser dans le code de production existant qui est à environ 15k lignes? Je veux dire combien d'efforts avons-nous besoin pour y parvenir? Est-ce la bonne façon de le faire? ou Besoin d'écrire toute la base de code avec GUICE.Est-il possible d'utiliser Google Guice sur le code Java Swing existant d'environ 15k?

Une idée?

Répondre

2

Donc, vous voulez introduire l'injection de dépendance? Oui Guice est un bon conteneur léger pour commencer. Je commencerais par identifier où vous allez tirer le meilleur parti de l'utilisation de DI (par exemple, il semble que vous ayez des problèmes de découplage). Votre nombre de lignes de code n'est pas pertinent.

Il est une bonne idée d'introduire Guice/DI peu bits à la fois (j'utiliser une approche TDD), constructeur/injection setter est le meilleur endroit pour commencer.

0

Si vous avez utilisé l'injection de dépendances correctement dans votre code, l'introduction de guice dans un projet sera facile. Si vous avez des singletons utilisés partout dans le code, vous devrez le refaire un peu. Notez que ce code ne repose sur rien de la bibliothèque de guice.

Il y a un an j'ai présenté un projet quand Guice était déjà un grand complexe, contenant des références statiques à singletons etc, de toute façon, il n'a pas été comme difficile à faire ce changement.

2

Oui, c'est possible. Vous n'avez pas besoin de réécrire. Introduisez l'outil et remplacez lentement quelques références directes par des injections, voyez comment cela fonctionne et continuez. Après un certain temps, vous gagnerez en confiance et remplacerez la plupart des appels de constructeurs par des injections de Guice.

0

Cela dépend de la qualité de votre code. S'il est bien conçu, p. il y a des modules logiques, toutes les implémentations ont des interfaces claires et vous utilisez des usines pour créer des objets c'est plus facile.

Quoi qu'il en soit, je vous recommande l'approche incrémentale, à savoir factoriser votre module par module d'application.