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 imbrication controleur


Sujet :

MVC

  1. #1
    Membre régulier Avatar de scorbo
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 176
    Points : 83
    Points
    83
    Par défaut MVC imbrication controleur
    Bonjour à tous,

    Depuis quelques temps je tente d'utiliser le principe MVC pour mes applications, lorsqu'elles sont toutes simples il n'y a pas de problèmes. Mais là on ça se complique c'est lorsqu'il faut imbriquer les contrôleurs, les vues et les modèles.
    J'ai plusieurs questions :
    - Est-ce qu'un contrôleur peut manipuler plusieurs modèle ?
    - Il est dis que c'est le contrôleur qui créer le modèle et la vue, or on peut avoir plusieurs façon de visualiser les données, donc pourquoi c'est au contrôleur de faire ça ? Pourquoi ne pas créer la vue à côté et la faire connaitre au contrôleur par un addView ?
    J'ai lu cette conversation (fort intéressante) : http://www.developpez.net/forums/d80...hitecture-mvc/
    Mais elle ne répond à toutes mes questions sur l'imbrication. Mon problème c'est que si on imbrique les contrôleurs, alors les vues et les modèles sont logiquement imbriqués également.
    Exemple :
    Je crée une vue principale qui encapsule deux boutons et une autre vue qui elle même est composée de 2 autres vues.
    Les deux boutons de la vue principale sont gérer par le contrôleur principal et chacune des autres vues ont leur propre contrôleur et modèle. Mon problème c'est comment lier tout ce petit monde ??

    Mon problème c'est que si c'est le contrôleur qui crée la vue elle ne correspondra pas forcément à celle que je souhaite !
    Si je suis ce qui a été dis je peux faire :
    Constructeur ControleurPrincipal
    construire modelPrincipal
    construire vuePrincipal(this)
    construire controleurSecond
    Fin constructeur

    Constructeur ControleurSecond
    construire modelSecond
    construire vueSecond(this)
    construire controleurTrois
    construire controleurTrois
    Fin constructeur


    ConstructeurVuePrincipale(ControlleurPrincipal cp)
    constuire les boutons propres à la vue
    cp.getControleurSecond.getView(); // pb: ce n'est pas forcément la vue que je souhaitais
    Fin constructeur


    Est-ce une pratique correcte ? Et comment résoudre le problème de la vue ? En fait il faudrait que je construise le controleur en passant en argument une vue.


  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Points : 85
    Points
    85
    Par défaut
    Voici ce que je fais si je souhaite qu'une action sur une sous-vue ait un impact sur une autre sous-vue, tout en respectant de le découplage :

    Soit Vg, la vue englobante V1 et V2 deux sous-vues (par exemple V1 pourrait être un arbre et V2 un formulaire détaillant le noeud sélectionné dans l'arbre).

    Il faut créer 3 interfaces de contrôleur pour chacune des vues ; Cg, C1 et C2.

    Ensuite (optionnellement), tu peux écrire une implémentation par défaut et/ou abstraite pour C1 et C2 mais qui reste totalement indépendante, ie que le controleur de V1 ne doit pas connaître V2 et vice-versa.

    Enfin, tu implémentes Cg, C1 et C2 dans la même classe et tu y définis alors les actions transverses aux sous-vues et pour le reste tu délègues à tes implémentation par défaut.

    C'est clair ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/05/2008, 09h06
  2. MVC Méthode Vue Controleur
    Par Deallyra dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 16/04/2008, 14h57
  3. [RegEx] Regex du tuto de Julien Pauli (MVC controleur)
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2007, 11h25
  4. javascript, controleur MVC et formulaire
    Par fatenatwork dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/10/2007, 23h23
  5. Réponses: 4
    Dernier message: 23/10/2007, 09h14

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