[MVC] Gestion complexe car vue conséquente

link915 Messages postés 4 Date d'inscription mercredi 16 septembre 2009 Statut Membre Dernière intervention 8 avril 2012 - 8 avril 2012 à 11:12
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 9 avril 2012 à 10:45
Bonjour,

Souhaitant travailler avec le modèle MVC pour le développement de mon application, j'ai browsé le web dans le but de trouver différentes informations concernant le dit pattern. J'en ai donc compris le fonctionnement mais je n'arrive pas à l'appliquer sur mon projet.

Sachant que tout les exemples que j'ai pu trouvé reposent sur de très petites application qui se chargent par exemple de mettre à jour une String

Alors voici le contexte :

J'ai une vue complexe qui contient une multitudes de champs, champs qui devront pouvoir être mis à jour mais qui pourront aussi servir de fournisseur d'informations.

Toutes ces données, sont ensuite stockées en base de données.

Et mon problème est tel que je ne comprend pas comment le contrôleur va se charger de contrôler l'intégrité de Toutes les données ( une 30 aines ), données qui seront ensuite envoyer en base grace au model.

Sachant que mon interface (ma vue) est centralisée sous une classe qui étend de JFrame, il faudrait alors que je passe à mon contrôleur, ma JFrame en paramètre ?

Voilà, c'est un peu touffu, et c'est surement pour ça que je m'y perd un peu.

J'ajoute quelques informations :

En y réfléchissant, l'utilisation de plusieurs vues devrait être une bonne solution, chaque vue représentant un panel qui doit être ou non mis à jour.

Or je ne trouve aucun exemple mettant en oeuvre plusieurs vues, c'est évoqué très rapidement sans aucune explication dans la plupart des tutos.

Il faudrait donc partir sur un AbstractModel et un AbstractControler ?
Et pour chaque vue implémenter une classe spécifique ?

Merci de votre aide,

link_915

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 avril 2012 à 12:39
Salut,

Normalement, quand tu as une application, chaque vue a une seule utilité. Cette fonction est réalisée par le contrôleur qui créé les objets métier et enregistre dans la base de données les informations.

Si tu prend cette source pour exemple : http://www.javafr.com/codes/IMPLEMENTATION-PATTERN-MVC_52767.aspx, tu devrais t'en sortir même si l'exemple est simple.

Si tu arrives un implémenter un MVC sur uns source simple, tu réussiras sur une source plus complexe, il faut juste comprendre le principe.
0
Utilisateur anonyme
8 avril 2012 à 23:38
Salut !

Sachant que mon interface (ma vue) est centralisée sous une classe qui étend de JFrame, il faudrait alors que je passe à mon contrôleur, ma JFrame en paramètre ?

Oui c'est un bon moyen. Tu peux par exemple passer ta JFrame en paramètre du constructeur de l'objet qui fait office de contrôleur. Honnêtement ce n'est pas la méthode que je préfère. Tu peux par exemple appeler une méthode statique de ta classe faisait office de controleur pour pouvoir garder une référence sur ta JFrame. C'est plus simple de cette façon car avec la méthode du constructeur tu dois te prendre d'avantage la tête pour savoir s'il a déjà été instancié ou non etc.

Bref tu peux faire

Controleur monControleur = new Controleur( maJFrame );


Ou alors

Controleur.reconnaitreJFrame( taJFrame );

// la fonction pour avoir une référence sur ta JFrame :
public static void reconnaitreJFrame( JFrame j ){
    laJFrame = j: // où ici laJFrame est un attribut static de ta classe Controleur
}


Sinon ce que tu peux faire, c'est par exemple faire un controleur par vue. Chaque vue est représentée par une classe, et tu fais une classe de controle pour chaque vue.

Comme ça le MVC peut être un peu déconcertant. Donc tu peux poster ton code et on te filera un coup de main.


--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça les a instruit)
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
9 avril 2012 à 10:45
salut

tu peux aussi instancier les 3 élement au meme niveau ;o) (Frame)... Evitant ainsi toutes usage du static ;o)...


GodConan ;o)
0
Rejoignez-nous