Les trois premiers chapitres présentent les bases de la programmation orientée-objet.
Une fois ces bases maîtrisées, il faut acquérir des automatismes pour programmer correctement
de façon efficace. Pour cela, un certain nombres de schémas standards de programmation,
appelés pattern, ont été identifiés. Ces patterns
s'appliquent à des domaines très variés. Un d'entre eux s'applique à la création
d'interfaces graphiques : Modèle/Vue/Contrôle (MVC).
Ce pattern, généralement attribué à Trygve Reenskaug du Xerox Parc, remonte aux années 70.
Il a depuis subit de nombreuses variations et adaptations, ce n'est pas le but de rentrer
trop dans le détail. Ce chapitre reprend les idées qui sont communes à la plupart de ces
variations.
Il s'agit dans ce cours de distinguer les attributions des différents acteurs de l'informatique.
On demande généralement à un informaticien industriel de se concentrer sur le
modèle métier, c'est-à-dire le modèle qui relève de son
domaine de compétence. Au dessus de ce modèle, si celui-ci le permet, on construira ensuite un
modèle graphique et une infrastructure qui relève plus de l'Interface Homme Machine (IHM).
Il arrive même que l'on ait besoin de construire plusieurs IHM pour les différents utilisateurs
du système : le chef de projet, le responsable maintenance, les développeurs, etc.
Le modèle MVC distingue :
- le modèle
- Il peut se décomposer à son tour en modèle métier et modèle graphique.
Il rassemble tout se qui est persistant dans le système, tout ce dont
l'absence dénaturerait le système, tout ce qui ne peut pas être reconstruit.
Par exemple, si on prend l'exemple d'un système de contrôle de température,
le modèle métier contient une ou plusieurs classes capables de gérer la température,
le modèle graphique contient les informations sur la charte graphique à utiliser.
- la vue
- Elle présente à un utilisateur l'information contenue dans le modèle.
La vue doit pouvoir être détruite et reconstuite à tout moment seulement à partir
de l'information contenue dans le modèle.
Par exemple, la vue est constituée de figures
(cercle, carré, texte, images) pour présenter le modèle mais la taille, la couleur
des figures, le contenu des textes sont soit génériques pour le système, soit contenus
dans le modèle graphique.
- le contrôleur
- Il définit quand et comment l'information est présentée à l'utilisateur,
c'est lui qui choisit quelle vue est présentée en fonction du modèle, il capte
les interactions de l'utilisateur (e.g., clics de souris) et les répercute sur
le modèle et la vue. Pour cela, il doit s'intégrer à l'environnement graphique
choisi. Java propose plusieurs environnements, nous allons présenter
brièvement un d'entre eux : swing.