MVC (Model View Controller)
I. Introduction
Le modèle MVC (Model View Controler) est un modèle de conception logicielle c'est à dire
une manière d'organiser les différentes parties du code d’une application graphique. Il sépare
l'application en 3 parties : le modèle (le programme), la vue (l'interface graphique) et le
contrôleur (l'interaction avec l'utilisateur).
II. Le modèle MVC
1. La vue
La vue est en fait une IHM (Interface Homme Machine). Elle représente ce que l'utilisateur a
sous les yeux. Ses tâches sont
La première tâche est d'afficher les données qu'elle a récupérées auprès du modèle.
La deuxième tâche est de recevoir tous les actions de l'utilisateur (clic de souris,
sélection d'une entrées, boutons, …).
Ses différents événements sont envoyés au contrôleur. La vue peut donc être :
Une application graphique Swing, AWT, SWT pour Java (Form pour C#…) ;
Une page web ;
etc.
La vue peut aussi offrir la possibilité à l'utilisateur de changer de vue.
2. Le modèle
Le modèle peut être divers et varié. Il contient les données manipulées par le programme. Il
assure la gestion de ces données et garantit leur intégrité. Il s'agit en général d'un ou plusieurs
objets Java. Ces objets effectuent des traitements absolument transparents pour l'utilisateur. En
trois mots, il s'agit du cœur du programme !
Exemple1 :
Dans le cas typique d'une base de données, c'est le modèle qui la contient.
On peut citer des objets dont le rôle est de gérer une ou plusieurs tables d'une base de
données.
Le modèle offre des méthodes pour mettre à jour ces données (insertion suppression,
changement de valeur).
Il offre aussi des méthodes pour récupérer ses données.
Dans le cas de données importantes, le modèle peut autoriser plusieurs vues partielles
des données.
Exemple 2 :
Les opérations d'ajout, de soustraction, multiplication et division c'est à dire les opérations
possibles de la calculette.
3. Le contrôleur
Le Contrôleur assure les échanges entre la vue et le modèle. En effet Le contrôleur permet de
faire le lien entre la vue et le modèle lorsqu'une action utilisateur est intervenue sur la vue. C'est
cet objet qui aura pour rôle de contrôler les données. Le contrôleur ne fait pas de traitement, ne
modifie pas de données, il est juste la passerelle entre le modèle, l'interface graphique et
l'utilisateur.
Par exemple, si une action nécessite un changement des données, le contrôleur demande la
modification des données au modèle et ensuite avertit la vue que les données ont changé pour
que celle-ci se mette à jour.
Certains événements de l'utilisateur ne concernent pas les données mais la vue. Dans ce cas, le
contrôleur demande à la vue de se modifier.
Exemple :
Dans le cas d'une base de données des emplois du temps.
Une action de l'utilisateur peut être l'entrée (saisie) d'un nouveau cours. Le contrôleur ajoute ce
cours au modèle et demande sa prise en compte par la vue.
Une action de l'utilisateur peut aussi être de sélectionner une nouvelle personne pour visualiser
tous ses cours. Ceci ne modifie pas la base des cours mais nécessite simplement que la vue
s'adapte et offre à l'utilisateur une vision des cours de cette personne.
III. Interactions
Les différentes interactions entre le modèle, la vue et le contrôleur sont résumées
par le schéma de la figure suivante.
Dans une application structurée en MVC, voici ce qu'il peut se passer :
L’utilisateur effectue une action sur L’application (un clic sur un bouton) ;
L’action est captée par le contrôleur, qui va vérifier la cohérence des données et
éventuellement les transformer afin que le modèle les comprenne. Le contrôleur peut
aussi demander à la vue de changer ;
Le modèle reçoit les données et change d'état (une variable qui change, par exemple) ;
Le modèle notifie la vue (ou les vues) qu'il faut se mettre à jour ;
L’affichage dans la vue (ou les vues) est modifié en conséquence en allant chercher
l'état du modèle.
1. L’objectif:
L’objectif du MVC est :
De dissocier au maximum la partie traitement des données et l'interface graphique.
D’avoir un code propre, le plus réutilisable et avec une maintenance aisée,
2. Pourquoi utiliser le MVC
Le MVC est utilisée parce que :
Si nous mélangeons tout le travail on ne peut pas partager le travail entre l’équipe.
Si on veut changer l'interface graphique, il faudra tout recoder
3. Le design pattern
MVC est un pattern composé. Ce qui signifie qu'il est constitué d'au moins deux patterns :
Le pattern observer se trouve au niveau du modèle. Ainsi, lorsque celui-ci va changer
d'état, tous les objets qui l'observeront seront mis au courant automatiquement
Pattern strategy est situé au niveau du contrôleur. On dit aussi que le contrôleur est la
stratégie de la vue. En fait, le contrôleur va transférer les données de l'utilisateur au
modèle et il a tout à fait le droit de modifier le contenu. La raison d'être de ce pattern :
encapsuler les morceaux de code qui changent ! En utilisant ce pattern, vous prévenez
les risques potentiels de changement dans votre logique de contrôle. Il vous suffira
d'utiliser une autre implémentation de votre contrôleur afin d'avoir des contrôles
différents.
Exemple générale :
IV. Conclusion
L'utilisation du modèle MVC rend un peu plus compliquer le développement de l'application
qui le met en œuvre mais il permet une meilleure structuration de celle-ci.
Il vaut mieux perdre un peu de temps au début dans l'architecture de l'application pour gagner
en efficacité et clarté plus tard.