MVC — ou Model-View-Controller — est un moyen d’organiser un logiciel en trois parties :
- Le modèle, qui contient le code propre à l’application
- La vue, qui contient le code permettant de représenter le modèle à l’écran
- Le contrôleur, qui contient le code qui gère les entrées d’un utilisateur
Ceci n’est pas vraiment un patron à en proprement parler ⇒ c’est une manière d’organiser son code.
On parle plutôt donc de patron architectural (Architectural Pattern)
Modèle
Le modèle ne contient donc aucun code qui gère l’interface graphique ni les entrées utilisatrices.
Exemple ⇒ Toutes les classes de Ajul gérant les fonctionnement du jeu
Vue
La vue est responsable d’afficher le modèle à l’écran.
Exemple ⇒ Dans Firefox, le code qui affiche les pages HTML
Contrôleur
Le contrôleur est responsable de gérer les entrées d’un utilisateur.
Exemple ⇒ Dans Firefox, le code qui prend compte des clics/touches pressées, etc...
MVC + Observer
Pour que le fonctionnement MVC soit atteignable, il faut utiliser des Observer ⇒ Notifier le modèle des inputs, etc…
Intérêts et désavantages
Cela nous permet de pouvoir tester individuellement les parties du programme.
On peut utiliser le même modèle pour plusieurs interfaces.