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

avec Java Discussion :

Le rôle du controlleur


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Le rôle du controlleur
    Bonjour

    J'ai un problème avec le rôle du controlleur.

    La première fois que j'ai fait un modèle MVC (enfin j'ai essayé), j'ai fait des beans qui se limitaient à des get et des set et une (et une seule) classe qui appelait les classes de connexion à la base de données et renvoyait un bean vers les servlets. Grosso modo ça donnait ça.

    dans controller.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void creeUnPhotographe(nom, prénom) //appel depuis la servlet
    {
      Photographe photographe = new Photographe(nom, prénom); 
      PhotographeJDBC.creeUnPhotographe(photographe);
    }
     
    public Liste<Photographe> afficheListePhotographe()
    {
      Liste <Photographe> listePhotographe =   PhotographeJDBC.fournitListePhotographe();
      return listePhotographe;
    }
    Et je gère tout l'objet (update, delete, select) Photographe comme ça parce que je n'arrive pas à comprendre en quoi l'affichage est dans le métier du Photographe... Suis-je claire ?

    Merci de votre aide.

  2. #2
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Le rôle du contrôleur dans une appli web est de coordonner l'appel à la couche services et de remonter un contenu métier transmis à la vue pour matérialisation graphique.

  3. #3
    Invité
    Invité(e)
    Par défaut
    désolée mais pour moi ce n'est pas clair

    Enfin sur le principe, si, mais dans les faits, non.

    Si je reprends mon exemple.

    J'ai un classe Administrateur qui gère les photographes.

    Sur mon interface web, je lui permets de rajouter un photographe, d'en enlever un ou d'en modifier un.

    Ma servlet appelle mon controlleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Controlleur.ajouteUnPhotographe(nom, prénom)
    mon controlleur voit que c'est le métier de l'administrateur, il lance son métier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Administateur.ajouteUnPhotographe(nom, prénom);
    et ma classe admininstrateur va appeler la classe qui est en connexion à la base de données ? Ca me parait juste... compliqué !

    Et dans le sens inverse du métier vers l'affichage web :
    je veux afficher la liste des photographes, dans mon controlleur, j'appelle mon objet Client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Client.veutLaListeDesPhotographes()
    ma fois, pourquoi pas... j'ai l'impression qu'il y a un truc que je n'ai pas compris, je n'arrive pas à mettre la main dessus. Désolée

  4. #4
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Ok. Photographe c'est une classe du domaine. C'est un simple bean sans aucune dépendance ni référence à un mécanisme de persistence.
    Administrateur (que tu peux appeler GestionnairePhotographe selon l'étendue de responsabilité que tu lui fait endosser) c'est de la couche service. Ce qui me chagrine c'est la déclaration statique des méthodes. Mieux vaut passer par une instanciation et mettre en place un pattern singleton.

    Ta couche service réalise donc l'ajout d'un photographe. Mais cela est fait dans un contexte transactionnel. J'ouvre une transaction, je créé l'instance métier de photographe, je la persiste en base, je clos la transaction en commitant. Je retourne éventuellement la nouvelle instance créé au contrôleur.

    De même pour une consultation. Dans la couche service tu ouvre une transaction en lecture seule, tu requête comme il convient selon les arguments transmis et retourne le résultat.

    Est-ce que tout ne pourrait pas être fait par le contrôleur. Oui, mais l'intérêt de séparer les couches réside dans le découplage et la séparation des responsabilités. Ici tu travaille dans un contexte web, mais imagine que tu veuilles exporter les services en RMI, SOAP ou n'importe quel autre protocole. Si tu fusionne service et contrôleur tu ne peux plus le faire sans duplication de code. voilà l'intérêt principal.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Là, je comprends mais je crois qu'il faut que je réfléchisse un peu à tout ce que tu viens de me dire. Il y a beaucoup d'infos en quelques lignes. Merci beaucoup en tout cas.

  6. #6
    Invité
    Invité(e)
    Par défaut
    En effet, je confonds "service" et "controleur". Merci.

    Le controleur est-il dédié au web ou pas ?

Discussions similaires

  1. Rôle et utilisation des tables système RDB$
    Par lio33 dans le forum Débuter
    Réponses: 2
    Dernier message: 06/10/2005, 11h41
  2. [Plugin][Php]PHP console : son rôle ?
    Par MYKERINOS dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 10/03/2005, 09h27
  3. Réponses: 3
    Dernier message: 23/11/2004, 09h44
  4. Rôles et Privilèges
    Par PhoneKilleR dans le forum Administration
    Réponses: 10
    Dernier message: 28/10/2003, 11h24

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