IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

[MVC] Où mettre les traitements


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 176
    Par défaut [MVC] Où mettre les traitements
    Bonjour,

    J'ai une question concernant le modèle MVC.
    Je ne vais pas refaire ici un cours sur le modèle MVC et ce qui j'y ai compris, je vais me contenter du minimum utile pour ma question.
    Pour moi le M qui représente le Modèle dans ce Design partern, correspond aux classes de données de mon application.
    Et c'est dans le C qui représente le Controller que je vais aller mettre les traitements permettant de manipuler ces classes.
    Je me demandais si c'était la bonne méthode ou si j'avais fait une erreur d'interprétation du pattern.

    Je vais prendre un exemple.
    Si je fais une application qui affiche dans un tableau une liste de personnes avec certaines informations, ainsi qu'un bouton ajout de personnes.
    Je vais avoir dons mon contrôleur une méthode "AjoutPersonne" et elle va construire un nouvel objet Personne de mon modèle et l'ajouter à une liste de personnes de mon contrôleur.

    Pensez-vous que c'est la bonne méthode?
    Auriez-vous fait autrement?

    Merci.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    La liste de personnes fait aussi partie du modèle. Sinon, oui, le contrôleur va être chargé de réagir à l'action Ajout en créant une instance de Personne et à l'ajouter à la liste. Le modèle lancera un évenement et les vues qui affichent la liste se mettront à jour pour afficher la nouvelle instance le cas échéant.
    Dans un MVC métier, le modèle ou le contrôleur ne sont pas forcmément qu'une seule instance d'une seule classe (les actions sont des instances de classes différentes par exemple, qui peuvent d'ailleurs délèguer d'ailleurs à des commandes, encore d'autres instances d'autres classes) .
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    C'est une confusion assez commune du MVC, au début, on mélange souvent des notions...
    Pour moi, il faut tout ramener à la Vue (donc ce qu'on présente à l'utilisateur).
    Le Modèle représente les données de cette Vue (dans ton cas, avec la liste de personnes en plus de la définition d'une personne).
    Le Contrôleur fait juste le lien entre la Vue et le Modèle, un chef d'orchestre en quelque sorte, c'est lui qui prendra en compte toutes les interactions à partir de la vue.

    Ça n'empêche pas d'avoir des choses plus complexes, le modèle peut être alimenter à partir de données provenant de la base de données, les contrôles liés aux données peuvent être déportés dans une classe "Métier" spécialisée (EJB par exemple) etc...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 176
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    La liste de personnes fait aussi partie du modèle. Sinon, oui, le contrôleur va être chargé de réagir à l'action Ajout en créant une instance de Personne et à l'ajouter à la liste. Le modèle lancera un évenement et les vues qui affichent la liste se mettront à jour pour afficher la nouvelle instance le cas échéant.
    Dans un MVC métier, le modèle ou le contrôleur ne sont pas forcmément qu'une seule instance d'une seule classe (les actions sont des instances de classes différentes par exemple, qui peuvent d'ailleurs délèguer d'ailleurs à des commandes, encore d'autres instances d'autres classes) .
    Donc il faudrait que j'implémente une classe "CollectionPersonne" que je place dans le modèle et qui aurait une méthode "AjoutPersonne" et qui attend les paramètres nécessaire à la création d'une nouvelle personnes. ai-je bien compris ta façon d'implémenter le pattern MVC?


    Citation Envoyé par OButterlin Voir le message
    Ça n'empêche pas d'avoir des choses plus complexes, le modèle peut être alimenter à partir de données provenant de la base de données, les contrôles liés aux données peuvent être déportés dans une classe "Métier" spécialisée (EJB par exemple) etc...
    Dans ce cas-là comment est-ce que tu considères cette classe métier? C'est une partie du modèle ou un partie du contrôleur?

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Anubis Voir le message
    Dans ce cas-là comment est-ce que tu considères cette classe métier? C'est une partie du modèle ou un partie du contrôleur?
    Non, c'est une classe à part, elle n'a rien à voir avec le pattern MVC, elle est juste référencée par le contrôleur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 176
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Non, c'est une classe à part, elle n'a rien à voir avec le pattern MVC, elle est juste référencée par le contrôleur.
    OK, tu considères donc que seul une partie de ton application implémente le design pattern MVC mais que l'application n'a pas à coller au design pattern MVC dans sa totalité.
    Est-ce que tu es d'accord avec moi sur ce point?

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Anubis Voir le message
    OK, tu considères donc que seul une partie de ton application implémente le design pattern MVC mais que l'application n'a pas à coller au design pattern MVC dans sa totalité.
    Est-ce que tu es d'accord avec moi sur ce point?
    Oui, tout à fait...

    Une application peut mettre en œuvre plusieurs pattern, c'est même normal.
    Chaque choses à leur place...
    MVC pour la couche présentation, Facade pour l'accès aux EJB, etc...

    Ce n'est absolument pas incompatible, le Contrôleur (de MVC) peut faire appel à toutes les ressources nécessaires.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Où mettre les traitements?
    Par nymformaticien dans le forum MVC
    Réponses: 8
    Dernier message: 26/12/2011, 22h00
  2. Réponses: 7
    Dernier message: 24/08/2007, 15h21
  3. mettre les formulaires aux mêmes dimensions
    Par xycoco dans le forum IHM
    Réponses: 6
    Dernier message: 09/10/2004, 09h32
  4. Mettre les <input> en disabled
    Par Oberown dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 05/10/2004, 15h59
  5. [MVC] Différences entre les framework MVC push et pull ?
    Par XavierZERO dans le forum Frameworks Web
    Réponses: 5
    Dernier message: 15/01/2004, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo