JAVA: Dépendances croisées entre modules [Résolu]

Signaler
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010
-
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
97
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 !
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010

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!
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010

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.
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010

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.
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010

Je m'excuse.. (je veux dire la classeA dépend du module2)

Merci d'avance!
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010

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.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
97
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 !
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010

comment est ce que je peux supprimer un message ici? je dis vraiment n'importe quoi...
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010

InterfaceA extends InterfaceC....
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010

D'accord j'ai compris maintenant, merci beaucoup :)
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
6 juillet 2010

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;