Vous êtes sur la page 1sur 3

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.

Principe
Un modle trois couches
Le 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 contrleur

Chacun 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 2
Le 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 pratique
Avantages
A 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!!

Inconvnients
Le 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.

Conclusion
Le 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.

Vous aimerez peut-être aussi