coolanso
Messages postés75Date d'inscriptionjeudi 12 août 2010StatutMembreDernière intervention 5 juillet 2014
-
Modifié par cs_Julien39 le 3/04/2014 à 14:11
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
21 nov. 2013 à 07:50
Bonjour à tous, j'aimerais juste des éclaircissements sur java de façon générale et sur le concept MVC en particulier. Je n'arrive pas à très bien comprendre comment pouvoir utiliser les méthodes de classes de différents packages au sein d'autres packages ou dans le même package.
1- Par exemple, si je dispose de deux packages A et B. Comment pourrais-je utiliser la méthode « methA » de la classe « classA » du package « packA » dans la classe « classB » du package « PackB ». Est-ce qu'une simple instanciation de la classe « classA » du package « packA » dans la classe « classB » du package « PackB » suffirait à résoudre mon problème.
2- Dans le cas des classes issues du même package est ce que l'instanciation d'une classe dans l'autre est-il également la solution ?
3- Quand on doit utiliser une classe comportant des paramètres (une autre classe) dans une classe du même package. Comment fait-on ?
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 15 nov. 2013 à 16:03
Pour t'expliquer comment ça marche en partant du principe que tu connais et comprends le design pattern Oberver :
- Le modèle (la partie métier de ton application) hérite de Observable qui permet de notifier les observateurs des modifications effectuées. Tu notifies les modifications aux observers sur toutes les méthodes set au moins.
- Les classes de l'ihm implémentent Observer et dans la méthode update, tu effectues les modifications pour que l'ihm colle aux paramètres de l'objet métier lorsqu'elle est notifiée d'un changement. Ton ihm possède un ou plusieurs contrôleurs.
- Les classes du contrôleur contiennent deux méthode au moins geTModel() et effectuerOperation() (ou équivalent) qui te permet de gérer les événements qui surviennent sur la vue.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 15 nov. 2013 à 15:57
Salut,
Je pense que tu ne comprends pas du tout l'architecture MVC. Ce n'est pas une question de packages mais c'est une décomposition entre la vue, le modèle et une couche de contrôle.
Les liens entre les packages se font normalement, c'est à dire en passant en paramètre des méthodes une instance de l'objet que tu veux utiliser.
A noter :
Si tu utilises jsf : tu as deux modèles MVC puisque jsf implémente un MVC pour la vue, le faces-config correspondant au contrôleur. Mais ce modèle MVC est uniquement pour la vue, il te faut en faire un autre dans lequel les managedBean sont la vue.
Si tu utilises Swing, les listeners sont "une sorte" de controleur pour lesquels les méthode actionPerformed() permettent de gérer les événements qui interviennent sur la vue. Il te suffit donc d'implémenter observer sur le model et le tour est joué.
coolanso
Messages postés75Date d'inscriptionjeudi 12 août 2010StatutMembreDernière intervention 5 juillet 2014 20 nov. 2013 à 19:03
Merci bien Julien39 pour ces précisions,il se trouve que j'utilise Swing et ce n'est pas si évident d'utilisé le concept MVC,mais je fais avec en tout cas
Mon application fonctionne pour le moment bien,mais est qu'il est optimal je ne sais pas.Dans mon cas, mon model est un java bean qui prend en compte les propriétés de la classe, ma vue est bien entendu mon IHM ( le Jframe),le problème résidait quand une des mes vues devrait prendre en paramètre une autre vue.mais j'ai pu avoir des explications, quand il s'agit de vues du même package une simple instanciation dans la vue l'utilisant suffit,mais quand il s'agit de vue de différents package un import de la vue est nécessaire.
Vous n’avez pas trouvé la réponse que vous recherchez ?