Les design pattern

Un design pattern ou modèle de conception répond à des problèmes d'ordre architectural au niveau des développement informatiques. Un Design pattern est intimement lié à la programmtion objet. Il consiste en un ensemble de règle de bonne pratique visant à améliorer l'organisation du projet en priviligiant la réutilisabilté du code. Une telle organisation permet de catalyser les temps de développements, et améliore considérablement la maintenance de l'applicaiton

Le design pattern MVC

Le Modèle-Vue-Contrôleur organise l'interface Homme-machine d'une application logicielle en un modèle (objet métier, encore modèle de données), une vue (présentation, interface utilisateur) et un contrôleur (logique de contrôle, gestion des événements, traitement), chacun ayant un rôle précis dans l'interface.

Ce design pattern impose la séparation entre les données, la présentation et les traitements, ce qui donne trois parties fondamentales dans l'application finale : le modèle, la vue et le contrôleur.

Le modèle

Il décrit ou contient les données manipulées par l'application. Dans le cas typique 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 ces données. Les résultats renvoyés par le modèle sont dénués de toute présentation. C'est le modèle qui contient toute la logique métier de l'application.

La vue

La vue correspond à l'interface avec laquelle l'utilisateur interagit. Sa première tâche est de présenter les résultats renvoyés par le modèle qui lui sont passés par le controleur. Sa seconde tâche est de recevoir toutes les actions de l'utilisateur (clic de souris, sélection d'une entrée, boutons, soumission de formulaire …). Ces différents événements sont envoyés au contrôleur. La vue n'effectue aucun traitement, elle se contente d'afficher les résultats des traitements effectués par le modèle.

Le contrôleur

Le contrôleur prend en charge la gestion des événements de synchronisation pour mettre à jour la vue ou le modèle et les synchroniser. Il reçoit tous les événements de l'utilisateur et enclenche les actions à effectuer.
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 qu'elle 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 (typiquement en l'alimentant avec les données du modèle). Le contrôleur n'effectue aucun traitement, ne modifie aucune donnée. Il analyse la requête du client et se contente d'appeler le modèle adéquat et de renvoyer la vue correspondante à la demande.
Selon le nombre d'actions possibles le controleur peut être plus ou moins gros, aussi pour plus de souplesse et d'élégance le modèle MVC2 intgègre-t-il un controleur principal (front controler) chargé de répartir les actiosn à un sous controleur spécialisé.

flux de traitement

En résumé, lorsqu'un client envoie une requête à l'application :
  •   la requête est analysée par le contrôleur
  •   le contrôleur demande au modèle approprié d'effectuer les traitements
  •   le contrôleur renvoie la vue adaptée.
  •  

Avantages

Le stockage des données est ainsi isolé des actions et de la présentation de l'application. Pour accroître encore l'indépendance par rapport au stockage des données le modèle peut être scinder en deux: une couche d'accès aux données et une couche logique pour les traitements.

Le modèles MVC est utilisé par différents projets JAVA () et PHP (symfony)