Discussion sur le pattern MVC

Résolu
Signaler
Messages postés
211
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
15 mars 2013
-
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
-
bonjour

aprés m'avoir bien documenté sur ce patern ( les 2 codes sources de julien39 : implementation mvc et organiser une application ) et d'autres tuto exterieur j'ai trouvé que le controlleur ne joue pas un role essentiel ( => perte de temps pour le coder ) on peut l'eviter sans que la vue et le modele soit depandants

exemple :
j'ai une vue qui permet d'afficher les listes d'articles enregistré dans la base
et un bouton pour ajouter un article et autre pour modifier .....
dans le modele correspondant a cette internaleframe : j'ai :
une methode qui retourne la liste des articles
une qui insert un nouveau : inserer()
une qui modifie : modifier()
une qui affiche la liste : afficher()
....
alors lors de l'ouverture de l'internaleframe je charge la liste par la methode afficher()

lors du clic sur le boutton ajouter un JDialog s'ouvre et et on rempli les chps et lors de clic sur ok : si ts les chps sont corrects on appele la methode inserer() puis afficher() pour metre a jour la vue ....

et comme ca sans a voir recours au controlleur

et si on veut faire une autre vue meme avec un outil a part swing on aura pas a changer le modele

ca c'est mon avis que j'ai essayé de bien argumenté ,

qu'est ce que vous en pensez ?

8 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
363
Bonjour,

Dans le cas que tu présentes en exemple, tu fais du MVC sans le savoir.

Dans ce que tu expliques, le modèle est la base de données, le contrôleur est la classe que tu appelles modèles et qui regroupe l'ensemble des actions possibles, et la vue et bien, c'est la vue de ton application.

Il ne manque qu'une seule chose dans ton exemple : une modélisation objet : en effet, je ne vois pas d'objet Article qui contient toutes les informations d'un article, et donc, tu fais ici de la programmation fonctionnelle.

Pour faire de la programmation objet, tu créés une classe Article qui est le modele de ton application, le controleur est la classe qui contient modifier, afficher, ... et la vue ben... c'est la vue.

Donc, désolé mais tu ne viens pas de révolutionner la facon d'organiser une application selon ce pattern .
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
Salut

faire une appli pro.???? perso je ne sais ce que cela veut dire!!!

Pour revenir un peu sur MVC ou plutot sur les paterns ;o) : il est évident qu il ne sont pas la facon la plus efficasse de coder en terme de performance et de cout immediat...
par contre, pour toutes maintenane/modification il est bcp plus simple de suivre un pgm dévelloper à l aide de patterns, d ou un gain non n égligeable dans tout les domaines du dev (et vi tout le monde les connait...) ...
Et dans la programmation d ihm leurs efficassités sautent aux yeux ;o) ...


GodConan ;o)
Messages postés
211
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
15 mars 2013
8
merci

c'est maintenant que je viens de bien comprendre ce que le pattern mvc car j'etais trop attaché aux exples donnés mais il fallu que je prend le principe et l'implementation change selon les cahiers de charges

concernant la modelisation objet : moi j'utilise les classes (pojos) pour chaque table a part les tables des associations et aussi les classes DAO : d'ailleurs dans les methodes inserer() et afficher() ... je ne fais pas des requettes mais voila :

DAO art = new articleDAO();      
ArrayList articles = ((articleDAO) art).select();

String[] colonnesNames = {"reference", "designation", "marque", "unité" , "taux TVA", "prix achat", "prix vente"};
Object[][] taw = new Object[articles.size()][7];
for( int i = 0 ; i< articles.size() ; i++ ){
        	taw[i][0] = articles.get(i).getReference();
        	taw[i][1] = articles.get(i).getDesignation();
        	taw[i][2] = articles.get(i).getMarque();
        	taw[i][3] = articles.get(i).getUnite();
        	taw[i][4] = articles.get(i).getT_tva();
        	taw[i][5] = articles.get(i).getP_a();
        	taw[i][6] = articles.get(i).getP_v();
        }
              
DefaultTableModel dtm = new DefaultTableModel(taw,colonnesNames);

table = new JTable(dtm);


alors, pour conclure je pense que je suis dans le bon chemin pour faire une application "pro", n'est ce pas ?
et vous avez contribuer tres fort pour m'aider a atteindre mon but , je vous remerci
et je pense qu'il me reste maintenant que des problemes techniques
je n'hesite pas a les poser au fur et a mesure
Messages postés
211
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
15 mars 2013
8
bonjour,


Pour revenir un peu sur MVC ou plutot sur les paterns ;o) : il est évident qu il ne sont pas la facon la plus efficasse de coder en terme de performance et de cout immediat...


a part le temps de codage : ya t il un autre inconvenient
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
euhh!!! ou je parle de temps?? ;o)

GodConan ;o)
Messages postés
211
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
15 mars 2013
8
bonjour,

je pense qu'en s'habituant ca ne va pas rester un probleme => peut etre un gain de tps

selon votre experience qu'est ce que vous en dites
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
363
Bonjour,

Tu ne gagneras pas de temps en implémentant ce design pattern. C'est vraiment impossible. Par contre, tu gagneras du temps lors de la maintenance et de l'évolution de ton application.
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
le temps!!! ;o) quand on code maintenant ;o) le code n est plus une perte de temps ;o) surtout avec les outils actuels ;o) .. et l avantage de la POO ;o) c est que bcp de morceau de code (class) sont réutilisable ;o) ... Les paterns c est bien au ssi parce qu elle sont bien défini ;o) et qu un générateur de code pêu macher le travail ;o) (ou une jolie macro) mais faut pas non plus ce prendre la tete avec ;o) ...

GodConan ;o)