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

MVC Discussion :

[MVC] Communication Modèle, Vue


Sujet :

MVC

  1. #1
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut [MVC] Communication Modèle, Vue
    Bonjour à tous,
    Comment effectuer la communication entre Vue et Modèle, quand le modèle est subdivisé en de nombreuses sous-classes? Dans tous les exemples MVC que j'ai lu (en C# du moins), la classe modèle est instanciée directement dans la vue afin d'y joindre les évènements. Mais si les évènements sont dispatchés dans plusieurs classes du modèle comment fait-on? On ne va pas instancier toutes les classes...
    Dans le tutoriel MVC de Baptiste Witch, la Vue n'a pas accès à l'instance de la classe modèle qu'elle représente.
    Merci...

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    La notion de Vue, de Modèle et de communication V<-->M sont des abstractions volontaires qui masquent en fait de nombreuses sous-entités et sous-associations.
    On sait que la vue est à l'écoute du modèle. Donc, certaines classes qui forment la Vue devront s'enregistrer comme observateurs de certaines autres classes qui forment le modèle.
    Il n'y a pas de recette magique, tu es le seul à savoir ce qui forme la Vue, le Modèle et les relations V<-->M dignes d'un intérêt dans ton cas.

    Petite explication (théorique)
    Les design patterns s'expriment au niveau des classes et peuvent donc être suivis "à la lettre" lors de l'élaboration d'un modèle de classe (que ce soit haut-niveau avec UML ou bas-niveau avec Java par exemple). En revanche, le MVC est un architectural pattern. Dans ce type de pattern, le bloc de construction de référence est le composant plutôt que la classe. Or un composant c'est une unité à "gros-grain" c-a-d une abstraction d'une multitude de classes quelconques. On ne peut donc pas traduire tel quel un pattern architectural vers un modèle de classe car il y a un fossé d'abstraction. Tout repose sur l'expérience et le savoir faire du praticien ! Dans l'exemple du MVC, le composant M pourra correspondre à des milliers de classes (idem pour V et le C). Pareillement, l'unique relation qui lie un composant M à un composant V pourra être en réalité constitué de centaines d'associations entre les classes concernées. C'est là toute la perversité des architectural patterns : ils véhiculent des idées très puissantes mais ne disent pas grand chose sur leur mise en oeuvre pratique.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Merci de ta réponse.
    Le seul truc qui me pose problème en fait, c'est l'organisation de ma couche Modèle. J'ai mis en place le pattern Observer qui fonctionne parfaitement, et j'ai crée une interface qui rend le controleur quasi indépendant de la vue.
    Mais est-ce que quelqu'un pourrai juste mettre un exemple de l'organisation de la couche modèle, ne serait-ce qu'avec deux classes? Tous les tutoriels ne mettent en place qu'une classe modèle, ce qui rend difficile l'extension du pattern.
    Merci...

  4. #4
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Tu peux faire un "Photograph" comme on appele ca ici :

    Une super classe Model qui possède une instance de toutes tes classes modèle plus petites. Ce Photograph propose aussi un accès direct à toutes les propriétés (en lecture) de ton arbre de petits Modele.

    Ainsi, tu restreint à la lecture seule, tu accède aux informations en maxi 2 navigations (et donc si l'organisation change, seul le photograph change)

    Et pour l'ecriture, tu passe par ton(tes) controllers qui accèdent directement au bon 'petit' Model
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  5. #5
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Une super classe Model qui possède une instance de toutes tes classes modèle plus petites. Ce Photograph propose aussi un accès direct à toutes les propriétés (en lecture) de ton arbre de petits Modele.
    Excellent.... et tout simple.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/05/2014, 09h47
  2. [PHP 5.0] MVC, inclure les vues et les modèles
    Par bob633 dans le forum Langage
    Réponses: 11
    Dernier message: 16/07/2012, 16h05
  3. [MVC] Actualiser la vue en écoutant le modèle
    Par dolcevita755 dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 25/03/2012, 16h12
  4. Modéle Vue Contrôleur (MVC)
    Par mine87 dans le forum ALM
    Réponses: 2
    Dernier message: 08/01/2010, 17h00
  5. Champ de texte et MVC (modèle vue contrôleur)
    Par three minute hero dans le forum Windows
    Réponses: 1
    Dernier message: 22/02/2007, 11h04

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