MVC Archistructure et cadre avec exemples

โšก Rรฉsumรฉ intelligent

Le modรจle MVC (Model-View-Controller) est un modรจle architectural qui sรฉpare une application en trois composants : le modรจle, la vue et le contrรดleur, isolant ainsi la logique mรฉtier de la couche de prรฉsentation afin de crรฉer des applications Web et de bureau maintenables et testables ร  lโ€™aide de frameworks tels que Spring, Django et Laravel.

  • ๐Ÿงฑ Trois composantes : L'architecture MVC divise une application en Modรจle (donnรฉes), Vue (prรฉsentation) et Contrรดleur (interaction utilisateur).
  • ๐Ÿ‡ง๐Ÿ‡ท Modรจle: Stocke les donnรฉes et la logique mรฉtier, rรฉpondant aux requรชtes de la Vue et aux instructions du Contrรดleur.
  • ๐Ÿ–ผ๏ธ Vue: Prรฉsente les donnรฉes ร  l'utilisateur via des รฉlรฉments d'interface utilisateur tels que des zones de texte, des listes dรฉroulantes, des graphiques et des tableaux.
  • (I.e. Contrรดleur: Interprรจte les donnรฉes saisies par l'utilisateur, puis met ร  jour le modรจle et la vue en consรฉquence.
  • โš™๏ธ Cadres populaires : Spring MVC, Django, Ruby on Rails, CakePHP, Laravel et CodeIgniter implรฉmente le modรจle MVC.
  • ๏ธ Avantages et inconvรฉnients : MVC amรฉliore la testabilitรฉ et le dรฉveloppement parallรจle, mais ajoute des รฉlรฉments.traccouches de navigation et complexitรฉ de la navigation.

MVC Archistructure et cadre

Quโ€™est-ce que le framework MVC ?

Le Modรจle-Vue-Contrรดleur (MVC) Le framework est un modรจle architectural qui sรฉpare une application en trois composants logiques principaux : modรจle, vue et contrรดleur. D'oรน l'abrรฉviation MVC. Chaque composant d'architecture est conรงu pour gรฉrer un aspect de dรฉveloppement spรฉcifique d'une application. MVC sรฉpare la logique mรฉtier et la couche de prรฉsentation les unes des autres. Il รฉtait traditionnellement utilisรฉ pour les interfaces utilisateur graphiques (GUI) de bureau. De nos jours, l'architecture MVC dans la technologie Web est devenue populaire pour la conception d'applications Web ainsi que d'applications mobiles.

Histoire de MVC

  • L'architecture MVC a รฉtรฉ discutรฉe pour la premiรจre fois en 1979 par Trygve Reenskaug
  • Le modรจle MVC a รฉtรฉ introduit pour la premiรจre fois en 1987 dans le langage de programmation Smalltalk.
  • MVC a รฉtรฉ acceptรฉ pour la premiรจre fois en tant que concept gรฉnรฉral, dans un article de 1988.
  • Rรฉcemment, le modรจle MVC est devenu largement utilisรฉ dans les applications web modernes.

Caractรฉristiques de MVC

  • Testabilitรฉ facile et sans friction. Framework hautement testable, extensible et enfichable
  • Pour concevoir une architecture d'application web ร  l'aide du modรจle MVC, vous bรฉnรฉficiez d'un contrรดle total sur votre HTML ainsi que sur votre URLs
  • Tirez parti des fonctionnalitรฉs existantes fournies par ASP.NET, JSP, Django, etc.
  • Sรฉparation claire de la logique : modรจle, vue, contrรดleur. Sรฉparation des tรขches d'application, ร  savoir. logique mรฉtier, logique Ul et logique d'entrรฉe
  • URL Routage optimisรฉ pour le rรฉfรฉrencement naturel URLs. Puissant URL-mapping pour comprรฉhensible et consultable URLs
  • Prise en charge du dรฉveloppement pilotรฉ par les tests (TDD)

MVC Architecture

Maintenant que les avantages sont clairs, voici l'architecture dรฉtaillรฉe du framework MVC :

MVC Architecture
MVC Archidiagramme de structure

Les trois composants MVC importants sont :

  • Modรจle : il comprend toutes les donnรฉes et leur logique associรฉe
  • Vue : prรฉsente les donnรฉes ร  l'utilisateur ou gรจre l'interaction de l'utilisateur
  • Contrรดleur : une interface entre les composants Model et View

Examinons chacun de ces composants en dรฉtail :

Consultation

Une vue est la partie de l'application qui reprรฉsente la prรฉsentation des donnรฉes.

Les vues sont crรฉรฉes ร  partir des donnรฉes collectรฉes par le modรจle. Une vue demande au modรจle de fournir des informations afin de prรฉsenter le rรฉsultat ร  l'utilisateur.

La vue reprรฉsente รฉgalement les donnรฉes des graphiques, des diagrammes et des tableaux. Par exemple, n'importe quelle vue client inclura tous les composants de l'interface utilisateur tels que les zones de texte, les listes dรฉroulantes, etc.

Contrรดleur

Le contrรดleur est la partie de l'application qui gรจre l'interaction avec l'utilisateur. Il interprรจte les entrรฉes de la souris et du clavier, et met ร  jour le modรจle et la vue en consรฉquence.

Un contrรดleur envoie des commandes au modรจle pour mettre ร  jour son รฉtat (par exemple, enregistrer un document spรฉcifique). Le contrรดleur envoie รฉgalement des commandes ร  sa vue associรฉe pour modifier la prรฉsentation de cette vue (par exemple, faire dรฉfiler un document particulier).

Modรจle

Le composant de modรจle stocke les donnรฉes et la logique associรฉe. Il reprรฉsente les donnรฉes transfรฉrรฉes entre les composants du contrรดleur ou toute autre logique mรฉtier associรฉe. Par exemple, un objet Controller rรฉcupรฉrera les informations client de la base de donnรฉes. Il manipule les donnรฉes et les renvoie ร  la base de donnรฉes ou les utilise pour restituer les mรชmes donnรฉes.

Il rรฉpond aux requรชtes des vues et aux instructions du contrรดleur pour se mettre ร  jour. Il s'agit รฉgalement du niveau le plus bas du modรจle, responsable de la gestion des donnรฉes.

Exemples MVC

Voyons un exemple de Model View Controller de la vie quotidienne :

Exemple 1

Exemples MVC

  • Supposons que vous alliez au restaurant. Vous nโ€™irez pas ร  la cuisine et prรฉparerez des plats que vous pouvez sรปrement faire chez vous. Au lieu de cela, vous y allez et attendez que le serveur arrive.
  • Maintenant, le serveur vient vers vous et vous commandez la nourriture. Le serveur ne sait pas qui vous รชtes et ce que vous voulez, il vient d'รฉcrire les dรฉtails de votre commande de nourriture.
  • Ensuite, le serveur se dirige vers la cuisine. Dans la cuisine, le serveur ne prรฉpare pas votre nourriture.
  • Le cuisinier prรฉpare votre nourriture. Le serveur lui remet votre commande ainsi que votre numรฉro de table.
  • Cuisinez ensuite les plats prรฉparรฉs pour vous. Il utilise des ingrรฉdients pour cuisiner la nourriture. Supposons que vous commandiez un sandwich aux lรฉgumes. Ensuite, il a besoin de pain, de tomates, de pommes de terre, de poivrons, d'oignons, de morceaux, de fromage, etc. qu'il se procure dans le rรฉfrigรฉrateur.
  • Cuire la derniรจre fois et remettre la nourriture au serveur. Il incombe dรฉsormais au serveur de dรฉplacer ces aliments hors de la cuisine.
  • Le serveur sait dรฉsormais quels plats vous avez commandรฉs et comment ils sont servis.

Dans cet exemple d'architecture MVC,

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

Voyons un autre exemple de modรจle MVC,

Exemple 2

Exemples MVC

Le mรฉcanisme de conduite automobile est un autre exemple du modรจle MVC.

  • Chaque voiture se compose de trois parties principales.
  • Vue : Interface utilisateur : (Levier de vitesses, panneaux, volant, frein, etc.)
  • Contrรดleur-Mรฉcanisme (moteur)
  • Modรจle- Stockage (Rรฉservoir Essence ou Diesel)

La voiture fonctionne ร  partir du moteur et prend le carburant du stockage, mais elle ne fonctionne qu'en utilisant les pรฉriphรฉriques d'interface utilisateur mentionnรฉs.

Frameworks Web MVC populaires

Voici une liste de quelques frameworks MVC populaires :

Avantages de MVC : avantages clรฉs

Voici les principaux avantages de lโ€™utilisation de lโ€™architecture MVC :

  • Maintenance de code facile, facile ร  รฉtendre et ร  dรฉvelopper
  • Le composant du modรจle MVC peut รชtre testรฉ sรฉparรฉment de l'utilisateur
  • Prise en charge plus facile pour les nouveaux types de clients
  • Le dรฉveloppement des diffรฉrents composants peut รชtre rรฉalisรฉ en parallรจle.
  • Il vous aide ร  รฉviter la complexitรฉ en divisant une application en trois unitรฉs. Modรจle, vue et contrรดleur
  • Il utilise uniquement un modรจle Front Controller qui traite les requรชtes dโ€™application Web via un seul contrรดleur.
  • Offre le meilleur support pour dรฉveloppement pilotรฉ par les tests
  • Cela fonctionne bien pour les applications Web prises en charge par de grandes รฉquipes de concepteurs et de dรฉveloppeurs Web.
  • Assure une sรฉparation claire des prรฉoccupations (SoC).
  • Optimisation des moteurs de recherche (SEO).
  • Toutes les classes et objets sont indรฉpendants les uns des autres afin que vous puissiez les tester sรฉparรฉment.
  • Le modรจle de conception MVC permet un groupe logiqueping des actions connexes sur un contrรดleur ensemble.

Inconvรฉnients de l'utilisation de MVC

  • Difficile de lire, modifier, tester unitairement et rรฉutiliser ce modรจle
  • La navigation dans le framework peut parfois s'avรฉrer complexe car elle introduit de nouvelles couches d'abstraction.traction qui exige que les utilisateurs s'adaptent aux critรจres de dรฉcomposition du modรจle MVC.
  • Pas de support de validation formel
  • Complexitรฉ accrue et inefficacitรฉ des donnรฉes
  • La difficultรฉ d'utiliser MVC avec l'interface utilisateur moderne
  • Il est nรฉcessaire que plusieurs programmeurs effectuent une programmation parallรจle.
  • La connaissance de plusieurs technologies est requise.
  • Maintenance de nombreux codes dans Controller

3 niveaux Architecture contre MVC Architecture

Paramรจtres 3-Tier Architecture MVC Architecture
Communication Ce type de modรจle d'architecture ne communique jamais directement avec la couche de donnรฉes. Toutes les couches communiquent directement en utilisant la topologie triangulaire.
Utilisation 3 niveaux : largement utilisรฉ dans les applications Web oรน le client, les niveaux de donnรฉes et le middleware s'exรฉcutent sur des plates-formes physiquement distinctes. Gรฉnรฉralement utilisรฉ sur les applications qui s'exรฉcutent sur un seul poste de travail graphique.

FAQ

MVC est un modรจle architectural, et non un simple modรจle de conception. Il organise une application entiรจre en couches Modรจle, Vue et Contrรดleur, sรฉparant ainsi les donnรฉes, la prรฉsentation et la logique d'interaction avec l'utilisateur.

MVC utilise un contrรดleur pour gรฉrer les entrรฉes et mettre ร  jour le modรจle et la vue, tandis que MVVM utilise un ViewModel avec liaison de donnรฉes. MVVM rรฉduit le code rรฉpรฉtitif et est courant dans les frameworks d'interface utilisateur modernes.

Utilisez le modรจle MVC pour les applications nรฉcessitant une sรฉparation claire des donnรฉes, de l'interface utilisateur et de la logique, notamment les applications web gรฉrรฉes par de grandes รฉquipes. Il amรฉliore la testabilitรฉ, le dรฉveloppement parallรจle et le routage optimisรฉ pour le rรฉfรฉrencement (SEO).

Les fonctionnalitรฉs d'IA sont gรฉnรฉralement ajoutรฉes dans la couche Modรจle ou Service d'une application MVC. Le Contrรดleur transmet les entrรฉes utilisateur aux modรจles d'IA, et la Vue affiche les prรฉdictions, les recommandations ou le contenu gรฉnรฉrรฉ aux utilisateurs.

Oui. Les assistants de programmation IA peuvent structurer les composants MVC, gรฉnรฉrer des contrรดleurs, des modรจles et des vues, et suggรฉrer le routage. Les dรฉveloppeurs vรฉrifient ensuite le rรฉsultat pour garantir une logique mรฉtier et une sรฉcuritรฉ correctes.

Rรฉsumez cet article avec :