Ce matériel fait partie de la série « Introduction au développement d'entreprise ». Articles précédents :
- sur le réseau ;
- sur l'architecture logicielle ;
- sur les protocoles HTTP/HTTPS ;
- à propos des bases de Maven ;
- à propos des servlets (nous écrivons une simple application web) ;
- à propos des conteneurs de servlets .
Histoire de MVC
Les idées de MVC ont été formulées par Trygve Reenskaug alors qu'il travaillait chez Xerox PARC à la fin des années 70. À cette époque, il était impossible de travailler avec un ordinateur sans un diplôme universitaire et une étude constante d’une documentation volumineuse. Le problème que Reenskaug a résolu avec un groupe de développeurs très compétents était de simplifier l'interaction de l'utilisateur moyen avec un ordinateur. Il fallait créer des outils qui, d'une part, seraient extrêmement simples et compréhensibles, et d'autre part, permettraient de gérer un ordinateur et des applications complexes. Reenskaug a travaillé dans l'équipe qui a développé l'ordinateur portable « pour les enfants de tous âges » - Dynabook, ainsi que le langage SmallTalk sous la direction d'Alan Kay. C’est à ce moment-là que les concepts d’une interface conviviale ont été posés. Le travail de Reenskaug avec son équipe a grandement influencé le développement du domaine informatique. Présentons un fait intéressant qui ne concerne pas directement MVC, mais illustre l'importance de ces développements. En 2007, après la présentation de l'iPhone d'Apple, Alan Kay déclarait : « Quand le Macintosh est sorti, Newsweek m'a demandé ce que j'en pensais. J'ai dit : c'est le premier ordinateur personnel digne de critique. Après la présentation, Steve Jobs est venu et a demandé : l'iPhone mérite-t-il la critique ? Et j’ai dit, faites-en cinq pouces sur huit et vous conquérirez le monde. Trois ans plus tard, le 27 janvier 2010, Apple présentait l'iPad de 9,7 pouces. Autrement dit, Steve Jobs a suivi presque littéralement les conseils d'Alan Kay. Le projet sur lequel Rennskaug a travaillé a duré 10 ans. Et la première publication sur MVC de ses créateurs a été publiée 10 ans plus tard. Martin Fowler, auteur de plusieurs livres et articles sur l'architecture logicielle, mentionne qu'il a appris MVC à partir d'une version fonctionnelle de SmallTalk. Comme il n'y avait aucune information sur MVC provenant de la source principale pendant longtemps, ainsi que pour un certain nombre d'autres raisons, un grand nombre d'interprétations différentes de ce concept sont apparues. En conséquence, de nombreuses personnes considèrent MVC comme un schéma ou un modèle de conception. Plus rarement, MVC est appelé modèle composite ou combinaison de plusieurs modèles qui fonctionnent ensemble pour implémenter des applications complexes. Mais en fait, comme indiqué précédemment, MVC est avant tout un ensemble d'idées/principes/approches architecturales qui peuvent être mises en œuvre de différentes manières en utilisant divers modèles... Ensuite, nous essaierons d'examiner les idées principales intégrées dans le concept MVC.Qu'est-ce que MVC : idées et principes de base
- VC est un ensemble d'idées et de principes architecturaux pour la construction de systèmes d'information complexes avec une interface utilisateur ;
- MVC est un acronyme qui signifie Model-View-Controller.
Étape 1 : Séparez la logique métier de l'application de l'interface utilisateur
L'idée clé de MVC est que toute application dotée d'une interface utilisateur peut, en première approximation, être divisée en 2 modules : un module chargé d'implémenter la logique métier de l'application, et une interface utilisateur. Le premier module implémentera les principales fonctionnalités de l'application. Ce module sera le cœur du système dans lequel le modèle de domaine d'application est implémenté. Dans le concept MVC, ce module sera notre lettre M, c'est à dire modèle. Le deuxième module mettra en œuvre l'intégralité de l'interface utilisateur, y compris l'affichage des données à l'utilisateur et la logique d'interaction de l'utilisateur avec l'application. L’objectif principal de cette séparation est de garantir que le cœur du système (Modèle dans la terminologie MVC) puisse être développé et testé de manière indépendante. L'architecture de l'application après une telle division ressemblera à ceci :Étape 2. En utilisant le modèle Observer, obtenez une indépendance encore plus grande du modèle, ainsi qu'une synchronisation des interfaces utilisateur
Ici, nous poursuivons 2 objectifs :- Obtenez une indépendance encore plus grande du modèle.
- Synchronisez les interfaces utilisateur.
Étape 3. Diviser l'interface en vue et contrôleur
Nous continuons à diviser l'application en modules, mais à un niveau inférieur de la hiérarchie. Dans cette étape, l'interface utilisateur (qui a été séparée en un module distinct à l'étape 1) est divisée en une vue et un contrôleur. Il est difficile de tracer une ligne stricte entre une vue et un contrôleur. Si nous disons que la vue est ce que l'utilisateur voit et que le contrôleur est le mécanisme par lequel l'utilisateur peut interagir avec le système, il y a une certaine contradiction. Les commandes, telles que les boutons d'une page Web ou un clavier virtuel sur l'écran d'un téléphone, font essentiellement partie du contrôleur. Mais ils sont tout aussi visibles pour l’utilisateur que n’importe quelle partie de la vue. On parle ici davantage de division fonctionnelle. La tâche principale de l'interface utilisateur est d'assurer l'interaction de l'utilisateur avec le système. Cela signifie que l'interface n'a que 2 fonctions :- afficher et afficher facilement des informations sur le système à l'utilisateur ;
- saisir les données utilisateur et les commandes dans le système (les transmettre au système) ;
- Suivant les principes de MVC, le système doit être divisé en modules.
- Le module le plus important et indépendant devrait être le modèle.
- Le modèle est le cœur du système. Vous devez pouvoir le développer et le tester indépendamment de l’interface.
- Pour ce faire, lors de la première étape de ségrégation du système, vous devez le diviser en un modèle et une interface.
- Ensuite, en utilisant le modèle Observer, nous renforçons le modèle dans son indépendance et obtenons la synchronisation des interfaces utilisateur.
- La troisième étape consiste à diviser l'interface en un contrôleur et une vue.
- Tout ce qui est nécessaire pour saisir les informations de l'utilisateur dans le système se trouve dans le contrôleur.
- Tout ce qui transmet les informations du système à l'utilisateur est visible.
GO TO FULL VERSION