Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Inscrit en
    janvier 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : janvier 2009
    Messages : 13
    Points : 0
    Points
    0

    Par défaut [MVC] Modification directe de la vue par le contrôleur ?

    Salut à tous !

    Je suis actuellement en train d'étudier le design pattern MVC.

    Pour moi, la logique de ce pattern est la suivante :


    Cependant je trouve régulièrement ce type de schéma :


    Ce dernier cas me parait étrange car pour moi toutes interactions entre la vue et le modèle devrait passer par le contrôleur.

    Comment expliquez vous ces deux types de cas ?

    Merci d'avance pour vos réponses !

  2. #2
    Membre chevronné
    Inscrit en
    janvier 2011
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 231
    Points : 665
    Points
    665

    Par défaut

    Salut,

    Le pattern MVC a subi de nombreuses mutations depuis son invention (dans les années 70 je crois). D'ailleurs au début les contrôleurs étaient faits pour tracker des actions sur l'UI et il y avait X contrôleurs par écran. Aujourd'hui il y a plusieurs variantes qui coexistent. Dans la version du deuxième schéma, on considère que le contrôleur est juste un aiguilleur qui va gérer le cheminement de la navigation dans l'application. La vue s'adresse directement au modèle pour savoir si les données qu'elle affiche ont changé, soit en lui demandant soit en étant notifiée par un système d'événements.

    Par contre je pense que tu trouverais davantage ton bonheur avec le pattern MVP qui est plus une chaîne (V <=> P => M) qu'un triangle comme MVC.

  3. #3
    Membre émérite Avatar de atha2
    Homme Profil pro Gabriel VIOT
    Ingénieur développement logiciels
    Inscrit en
    janvier 2007
    Messages
    605
    Détails du profil
    Informations personnelles :
    Nom : Homme Gabriel VIOT
    Âge : 26
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : janvier 2007
    Messages : 605
    Points : 934
    Points
    934

    Par défaut

    J'arrive un peu tard mais j'espère que ma réponse pourra te servir (ou à quelqu'un d'autre)
    Pour moi, il n'y a pas vraiment de différence entre les deux schéma. La seule différence c'est que dans un cas la notification du changement du Modèle passe par le Contrôleur avant d'arriver à la Vue.

    Comme disait un de mes profs quand j'étais en DUT, le MVC n'est pas un pattern normalisé. On l'adapte en fonction de l'application (dépendance entre les différentes couches). Si ton contrôleur a besoin besoin de savoir que la vue est notifier alors utilise le premier schéma. Généralement, vu que c'est le contrôleur qui a modifié le modèle, il sait que la vue va être notifié (et dans quel contexte) donc c'est useless. Mais c'est à prendre au cas par cas.
    Je viens de regarder le pattern MVP (que je ne connaissais pas) et j'ai l'impression qu'entre les 2 (MVC (2ème schéma) et MVP) la différence est qui a la responsabilité de mettre à jour la Vue : la Vue elle même ou le Contrôleur.

    Au final la question est de savoir si le Contrôleur doit connaître le type de la Vue ?
    Enfin je dis au final mais on peut poser la question dans l'autre sens : la Vue doit-elle connaitre le modèle ?

    AU FINAL tout dépend des besoins

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •