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

Java Discussion :

Confusion 3-tiers et MVC


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Par défaut Confusion 3-tiers et MVC
    Bonjour à tous,

    voilà j'ai une question existentielle : est-ce qu'une architecture MVC est une architecture 3-tiers ?
    Ou MVC fait simplement partie de la couche présentation ?

    Parce que je lis des trucs dans les tuto developpez et sur wikipedia qui ne sont pas tout à fait d'accord, du coup je m'embrouille.

    L'un intègre MVC dans la couche présentation et l'autre fait un "comparatif" entre les 2.
    Comment peut-on comparer une chose avec une partie d'elle même ? D'où ma question.

    Je sais que ce sont des principes et que la pratique ce n'est pas toujours raccord avec la théorie mais c'est pour une présentation donc j'ai besoin d'exposer la théorie.

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Bon je vais t'expliquer mon point de vue sur la chose. Mais ces paradigmes d'architectures sont, comme tu le dis, des points de vues théoriques. Ils sont adaptés dans la pratique et prêtent encore à des débats sur leur bonne utilisation (on pourrait y rajouter PAC, M-V-VM dans le monde .NET, etc etc ...).

    Je résumerais la situation comme ça (de ce que j'ai compris) :
    - L'architecture MVC pour une appli avec IHM : Son principe est cyclique puisque d'une action dans la Vue, le Controleur agit en conséquence. Ce Controleur va chercher les informations dans le Modèle qu'il envoie à la Vue pour se mettre à jour.
    - L'architecture 3-tiers : Son principe est plus par couche. La Présentation signale une action à la couche Métier qui elle s'occupe des traitements. La couche Métier va chercher les données au sein de la couche Données. Les Données sont renvoyées à la couche Métier. La couche Métier renvoie les nouvelles informations à écrire au niveau de la couche Présentation.
    - L'architecture 3-tiers avec MVC pour la présentation : L'action de l'utilisateur est récupérée par la Vue qui demande l'action au Controleur. Le Controleur accède à la partie Métier pour avoir accès à la logique de l'application. La partie Métier peut avoir accès aux données de BDD ou autre par l'intermédiaire de la partie Donnée. Grâce à ce traitement, le Controleur peut alors formater le Modèle via les données de la partie Métier et l'envoie à la Vue. On a donc bien le modèle MVC au sein de la couche Présentation de l'architecture 3-tiers.

    Donc, pour moi, MVC et 3-tiers sont bien deux architectures différentes mais qui peuvent être couplées ensemble d'où ce méli-mélo que l'on peut trouver.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Par défaut
    D'accords, alors si on regarde avec le fonctionnement de JSF par exemple, la vue ce sont les pages jsf (xhtml, jsp...), et le contrôleur ainsi que le modèle correspondent au ManagedBean ?

    En schématisant 3-tiers et MVC ça donnerait quelque chose comme ça:
    < Image externe plus disponible > (d'où l'intérêt d'utiliser le bouton trombone pour ajouter des images !)

  4. #4
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1
    Par défaut confusion entre 3-tiers et MVC
    slt! je trouve ce débat passionnant.
    Merci à toi Robin56 pour la solution proposé. j'avoue que je ne comprenait pas, moi aussi la nuance entre ces deux architectures. et si vous voulez bien continuer à nous éclairer je voudrais savoir : "comment savoir quel architecture utiliser entre ces deux architectures très ressemblant?", "quel architecture est meilleur?"
    merci!

  5. #5
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par dihonson Voir le message
    "comment savoir quel architecture utiliser entre ces deux architectures très ressemblant?", "quel architecture est meilleur?"
    On ne peut pas vraiment dire qu'une architecture est meilleure qu'une autre. Elles ont toutes leurs avantages et leurs lourdeurs également.

    L'avantage du MVC est de bien découper les problématiques de contrôle de l'IHM. L'avantage du 3-tiers est de bien découper les problématiques vis à vis de l'accès aux données. Le mieux serait donc de coupler les deux.

    Ainsi, ça donne la chose suivante :
    - les contrôles de bases d'IHM peuvent être réalisés dans la vue
    - le formatage des données et la récupération des actions utilisateurs sont gérés dans le contrôleur
    - le métier peut réaliser les contrôle plus orienté données et établir un formatage aussi des données bruts.
    - les données sont séparées de la couche métier pour permettre de sécuriser au plus bas niveau (contrôle des accès base, etc...) par l'utilisation de DAO par exemple.

    Évidemment toute architecture a un coût de mise en place. La plupart des frameworks désormais le gère de base et facilite donc ces fonctionnements en couche.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

Discussions similaires

  1. Combiner l'architecture 3 tiers avec MVC sous CS
    Par medirama dans le forum ALM
    Réponses: 0
    Dernier message: 24/06/2014, 21h07
  2. [3-tier] Différence avec le MVC
    Par Fearless13 dans le forum Autres
    Réponses: 1
    Dernier message: 21/09/2010, 21h41
  3. Confusion et hesitation entre MVC ORM
    Par thaundeadboss dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 25/06/2009, 16h36
  4. Réponses: 1
    Dernier message: 22/05/2008, 10h56
  5. mvc quelle architecture n-tiers ?
    Par shawty dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 07/03/2007, 08h54

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