JAVA: Dépendances croisées entre modules

Résolu
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010 - 27 mai 2009 à 11:27
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010 - 28 mai 2009 à 17:11
Bonjour,

Je suis sur un Projet que je dois mavéniser, je l'ai divisé en sous modules...
Je dois mettre dans chaque sous module les classes correspondantes.
Soit:
Module1:contient les classes commun, contient aussi les classes propres a module2 et module3, on a des classes de commun qui dépendent du module2 et 3
Module2:dépend du module1
Module3:dépend du module1
Donc, problème de dépendances croisées.
Je dois ranger dans le module1 (commun ) que les classes commun(aucune classe propre au module2 ou 3 ne doit y être).
Or, je donne un exemple, j'ai une classe de commun(module1) qui a une méthode dont l'argument est une classe du module2, et du module3.
* methode1(classeA a, classeB b) ; tel que classeA doit être dans le module2, et la classeB doit être dans le module3, si je deplace ces deux classes du module1, et que je les mets dans mod2 et mod3, ca va pas marcher surement! je ne sais pas comment je pourrais casser cette dependance.

Merci d'avance!

11 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 mai 2009 à 12:16
Salut,

Ton module commun ne doit dépendre de rien, sinon ce n'est pas un module commun !

Utilise donc des interfaces : tu mets les interfaces dans ton module commun, et tu fait implémenter tes classes de tes deux autres modules de ces interfaces, ainsi le module commun pourra appeler les méthodes de tes classes, sans savoir de quel type exact elles sont !
3
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
27 mai 2009 à 12:25
Bonjour,
Merci pour ta réponse!
Pour commun oui il ne doit dépendre de rien. (c'est ce que je voulais dire), je dois avoir au final un commun, et les 2 autres modules. qui peuvent dépendre de commun.
J'ai déjà pensé a cette solution, sauf que dans l'interface je dois déclarer la méthode avec les arguments (classeA et classeB) donc ca revient au même...
Merci bcp!
0
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
27 mai 2009 à 14:05
Je rectifie, je dois ajouter deux interfaces (dans commun), qui seront implémentées par les deux classes A et B qui seront placées dans modules2 et module3. Comme ca commun fera appel aux interfaces, et n'aura aucune dépendances sur les 2 modules.
0
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
27 mai 2009 à 15:01
J'ai un autre problème, c'est que la classeA elle même dépend d'autre classes du même module module1, donc en créant l'interface, je dois importer ces classes, cela dit il y aura toujours des dépendances sur commun.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
27 mai 2009 à 15:02
Je m'excuse.. (je veux dire la classeA dépend du module2)

Merci d'avance!
0
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
27 mai 2009 à 15:13
Re!
InterfaceA de la classeA qui va implémenter l'interface de la classeC(tel que l'interfaceA a une dépendance sur la classeC(se trouvant dans module2)); donc l'interfaceA va implementer l'interfaceC, et les deux vont être placées dans commun.
est ce que cela peut se faire?

Merci d'avance.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 mai 2009 à 15:18
J'ai du mal à suivre là :)

Il faut placer toutes les interfaces dont dépend tes classes du module commun dans le module commun, forcément !
0
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
27 mai 2009 à 15:23
comment est ce que je peux supprimer un message ici? je dis vraiment n'importe quoi...
0
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
27 mai 2009 à 15:31
InterfaceA extends InterfaceC....
0
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
27 mai 2009 à 15:32
D'accord j'ai compris maintenant, merci beaucoup :)
0
betty555 Messages postés 38 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 6 juillet 2010
28 mai 2009 à 17:11
Bonjour,

Une classe de commun doit instancier un objet appartenant au module2, puisqu'il n'y a pas de dépendances entre ces deux modules comment cela peut se faire?

Merci d'avance;
0
Rejoignez-nous