4
MVC & MVC2 – Modèle Vue Contrôleur (Model View Controller) 9 December 2004 par SeB 25 commentaires » Le Model-View-Controller (MVC) est un modèle de conception logicielle très répandu et fort utile. Créé dans les années 80 par Xerox PARC pour Smalltalk-80, il est aujourd’hui fortement recommandé dans l’univers J2EE. Néanmoins il faut retenir que c’est un modèle de conception, et il est donc indépendant du langage de programmation. Principe Un modèle à trois couches Le MVC est un modèle de conception qui repose sur la volonté de séparer les données, les traitements et la présentation. Ainsi l’application se retrouve segmentée en trois composants essentiels : le modèle la vue le contrôleur Chacun de ces trois composants a un rôle bien défini. Le modèle représente les données et les règles métiers. C’est dans ce composant que s’effectuent les traitements liés au cœur du métier. Les données peuvent être liées à une base de données, des EJBs, des services Web, … Il est important de noter que les données sont indépendantes de la présentation. En d’autres termes, le modèle ne réalise aucune mise en forme [1 ] . Ces données pourront être affichées par plusieurs vues. Du coup le code du modèle est factorisé : il est écrit une seule et unique fois puis réutilisé par chaque vue. La vue correspond à l’IHM. Elle présente les données et interagit avec l’utilisateur. Dans le cadre des applications Web, il s’agit d’une interface HTML, mais n’importe quel composant graphique peut jouer ce rôle.

Mvc

Embed Size (px)

DESCRIPTION

ffffffffffffffffffffffffffffffffffffffffffffffkjdkljdlkdjlkdjdlkjdlkdjkldjlkjdlkdjldd

Citation preview

MVC & MVC2 Modle Vue Contrleur (Model View Controller)9 December 2004 par SeB 25 commentaires Le Model-View-Controller (MVC) est un modle de conception logicielle trs rpandu et fort utile. Cr dans les annes 80 par Xerox PARC pour Smalltalk-80, il est aujourdhui fortement recommand dans lunivers J2EE. Nanmoins il faut retenir que cest un modle de conception, et il est donc indpendant du langage de programmation.PrincipeUn modle trois couchesLe MVC est un modle de conception qui repose sur la volont de sparer les donnes, les traitements et la prsentation. Ainsi lapplication se retrouve segmente en trois composants essentiels : le modle la vue le contrleurChacun de ces trois composants a un rle bien dfini.Le modle reprsente les donnes et les rgles mtiers. Cest dans ce composant que seffectuent les traitements lis au cur du mtier. Les donnes peuvent tre lies une base de donnes, des EJBs, des services Web, Il est important de noter que les donnes sont indpendantes de la prsentation. En dautres termes, le modle ne ralise aucune mise en forme[1]. Ces donnes pourront tre affiches par plusieurs vues. Du coup le code du modle est factoris : il est crit une seule et unique fois puis rutilis par chaque vue.La vue correspond lIHM. Elle prsente les donnes et interagit avec lutilisateur. Dans le cadre des applications Web, il sagit dune interface HTML, mais nimporte quel composant graphique peut jouer ce rle.Le contrleur, quant lui, se charge dintercepter les requtes de lutilisateur, dappeler le modle puis de rediriger vers la vue adquate. Il ne doit faire aucun traitement. Il ne fait que de linterception et de la redirection.Cinmatique Lutilisateur met une requte Le contrleur intercepte la requte de lutilisateur Le contrleur dtermine quelle partie du modle est concerne et quelle vue y est associe Le modle traite les interactions avec les donnes, applique les rgles mtier et renvoie les donnes au contrleur Le contrleur slectionne la vue et lui renseigne les donnes La vue prsente les donnes lutilisateur

MVC model 2Le MVC trs pratique, peut se rvler lourd mettre en place. Ceci cause de la multitude de contrleurs implmenter. Afin de simplifier la ralisation dun tel modle, une nouvelle version a t introduite : le MVC2. Cest exactement le mme modle de conception la diffrence quil ny a plus quun seul contrleur qui se charge de rediriger la requte vers le bon traitement.Dans la pratiqueAvantagesA lpoque des applications Web, il nest pas rare que le dveloppeur soit tent de mettre du code de traitement dans les composants de prsentation (JSP, PHP, ). Certains composants facilitent mme ce genre de dveloppement!! Le MVC impose cette sparation.Comme prcis plus haut, plusieurs vues peuvent utiliser le mme modle. Ce qui reprsente un gain en cot de dveloppement important.Le modle est totalement indpendant de la vue. Si lapplication a besoin dun nouveau mode daccs, le modle restera inchang. Il suffit juste de changer la partie IHM.Le modle tant totalement autonome, il peut tre modifi beaucoup plus facilement. En effet si le mode de persistance des donnes change ou bien si des rgles mtier voluent, il suffit de modifier seulement le modle. La vue na pas besoin dtre modifie dans ce cas.Deux quipes peuvent travailler en parallle. Une quipe dinfographistes peut travailler sur les vues et en mme temps une quipe de dveloppeurs peut travailler sur le modle et le contrleur. Cet aspect ncessite tout de mme une bonne communication entre les deux entits.Les trois couches doivent tre rellement indpendantes et ne doivent communiquer que par des interfaces. Dans ce cas lapplication sera trs modulaire et nimporte quelle couche pourra tre inter-change sans consquence pour les autres.Le contrleur permet une trs grande souplesse dans lapplication. Cest lui qui assemble diffrentes parties du modle avec une vue partir dune requte. Sil est maitris la perfection, la factorisation des vues est envisageable. Larchitecte peut alors samuser en surprendre plus dun dveloppeur!!InconvnientsLe MVC se rvle trop complexe pour de petites applications. Le temps accord larchitecture peut ne pas tre rentable pour le projet.Mme si le code est factoris, le nombre de micro-composants nen est pas moins augment. Cest le prix payer pour la sparation des 3 couches. Et toutes les personnes qui font de la gestion de configuration comprendront que le nombre important de fichiers reprsente une charge non ngligeable dans un projet.ConclusionLe MVC favorise le dveloppement et la maintenance du code. Sur de gros projets et/ou avec de grandes quipes de dveloppements, lapplication dun tel modle de conception se rvle trs performant. Il existe aujourdhui des frameworks trs avancs qui se basent sur le MVC ou le MVC2. Lutilisation de ces frameworks facilite sa mise en place et cadre sa ralisation.Pour les personnes qui souhaitent mettre en place une application MVC2 en J2EE, Struts se rvle trs adapt.