Académique Documents
Professionnel Documents
Culture Documents
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
Cinmatique
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
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.