MVC ArchiStructuur en raamwerk met voorbeelden
⚡ Slimme samenvatting
Model-View-Controller (MVC) is een architectuurpatroon dat een applicatie opsplitst in drie componenten: model, weergave en controller. Hierdoor wordt de bedrijfslogica geïsoleerd van de presentatielaag, wat resulteert in onderhoudbare en testbare web- en desktopapplicaties met behulp van frameworks zoals Spring, Django en Laravel.
Wat is MVC-framework?
De Model-View-Controller (MVC) framework is een architectuurpatroon dat een applicatie verdeelt in drie logische hoofdcomponenten: Model, View en Controller. Vandaar de afkorting MVC. Elk architectuurcomponent is gebouwd om specifieke ontwikkelingsaspecten van een applicatie te behandelen. MVC scheidt de bedrijfslogica en presentatielaag van elkaar. Het werd traditioneel gebruikt voor grafische gebruikersinterfaces (GUI's) op desktops. Tegenwoordig is MVC-architectuur in webtechnologie populair geworden voor het ontwerpen van webapplicaties en mobiele apps.
Geschiedenis van MVC
- MVC-architectuur werd voor het eerst besproken in 1979 door Trygve Reenskaug
- Het MVC-model werd voor het eerst geïntroduceerd in 1987 in de programmeertaal Smalltalk.
- MVC werd voor het eerst geaccepteerd als algemeen concept, in een artikel uit 1988
- De laatste tijd wordt het MVC-patroon veelvuldig gebruikt in moderne webapplicaties.
Kenmerken van MVC
- Gemakkelijke en wrijvingsloze testbaarheid. Zeer testbaar, uitbreidbaar en plugbaar raamwerk
- Het ontwerpen van een webapplicatiearchitectuur met behulp van het MVC-patroon biedt volledige controle over zowel uw HTML als uw URLs
- Maak gebruik van bestaande functies van ASP.NET, JSP, Django, enz.
- Duidelijke scheiding van logica: Model, View, Controller. Scheiding van applicatietaken, namelijk bedrijfslogica, Ul-logica en invoerlogica.
- URL SEO-vriendelijke routing URLKrachtig URL-kaartping voor begrijpelijke en doorzoekbare URLs
- Ondersteuning voor Test Driven Development (TDD)
MVC Architectuur
Nu de voordelen duidelijk zijn, volgt hier de gedetailleerde architectuur van het MVC-framework:

Drie belangrijke MVC-componenten zijn:
- Model: Het bevat alle gegevens en de bijbehorende logica
- Bekijken: Presenteer gegevens aan de gebruiker of handelt gebruikersinteractie af
- Controller: Een interface tussen Model- en View-componenten
Laten we elk van deze onderdelen eens nader bekijken:
Bekijk
Een weergave is dat deel van de applicatie dat de presentatie van gegevens vertegenwoordigt.
Weergaven worden gecreëerd op basis van de gegevens die uit het model worden verzameld. Een weergave vraagt het model om informatie te verstrekken, zodat het de uitvoerpresentatie aan de gebruiker kan tonen.
De weergave vertegenwoordigt ook de gegevens van grafieken, diagrammen en tabellen. Bijvoorbeeld, elke klantweergave zal alle UI-componenten bevatten zoals tekstvakken, dropdowns, etc.
Controller
De controller is het onderdeel van de applicatie dat de gebruikersinteractie afhandelt. De controller interpreteert de muis- en toetsenbordinvoer van de gebruiker en stuurt het model en de weergave aan om dienovereenkomstig te veranderen.
Een controller stuurt commando's naar het model om de status ervan bij te werken (bijvoorbeeld het opslaan van een specifiek document). De controller stuurt ook commando's naar de bijbehorende view om de presentatie van de view te wijzigen (bijvoorbeeld het scrollen van een bepaald document).
Model
De modelcomponent slaat gegevens en de bijbehorende logica op. Het vertegenwoordigt gegevens die worden overgedragen tussen controllercomponenten of andere gerelateerde bedrijfslogica. Een Controller-object haalt bijvoorbeeld de klantinformatie uit de database. Het manipuleert gegevens en stuurt deze terug naar de database of gebruikt deze om dezelfde gegevens weer te geven.
Het reageert op verzoeken vanuit de views en ook op instructies van de controller om zichzelf bij te werken. Het is tevens het laagste niveau van het patroon dat verantwoordelijk is voor het onderhouden van de gegevens.
MVC-voorbeelden
Laten we een voorbeeld van Model View Controller uit het dagelijks leven bekijken:
Voorbeeld 1
- Laten we aannemen dat je naar een restaurant gaat. Je gaat niet naar de keuken om eten te bereiden, wat je zeker thuis kunt doen. In plaats daarvan ga je daarheen en wacht tot de ober langskomt.
- Nu komt de ober naar je toe en bestel je het eten. De ober weet niet wie je bent en wat je wilt, hij heeft zojuist de details van je etenbestelling opgeschreven.
- Vervolgens gaat de ober naar de keuken. In de keuken bereidt de ober uw eten niet.
- De kok bereidt uw eten. De ober krijgt uw bestelling en uw tafelnummer.
- Kook en bereid vervolgens voedsel voor u. Hij gebruikt ingrediënten om het eten te koken. Stel dat u een groentebroodje bestelt. Dan heeft hij brood, tomaat, aardappel, paprika, ui, stukje kaas, enz. nodig die hij uit de koelkast haalt
- Kook de laatste hand en overhandig het eten aan de ober. Nu is het de taak van de ober om dit eten buiten de keuken te verplaatsen.
- Nu weet de ober welk eten je hebt besteld en hoe het wordt geserveerd.
In dit MVC-architectuurvoorbeeld,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Laten we nog een MVC-modelvoorbeeld bekijken,
Voorbeeld 2
Auto-aandrijfmechanisme is een ander voorbeeld van het MVC-model.
- Elke auto bestaat uit drie hoofdonderdelen.
- Weergave: Gebruikersinterface: (Versnellingspook, panelen, stuurwiel, rem, enz.)
- Controller-mechanisme (motor)
- Model-opslag (benzine- of dieseltank)
De auto rijdt op de motor en haalt brandstof uit de opslag, maar hij werkt alleen met de genoemde gebruikersinterfaceapparaten.
Populaire MVC-webframeworks
Hier is een lijst met enkele populaire MVC-frameworks:
- Ruby on Rails
- Django
- CakePHP
- Yii
- cherrypy
- Lente MVC
- Catalyst
- Rails
- Zend Framework
- Codeontsteker
- Laravel
- Brandstof PHP
- Symphony
Voordelen van MVC: Belangrijkste voordelen
Dit zijn de belangrijkste voordelen van het gebruik van MVC-architectuur:
- Eenvoudig codeonderhoud dat eenvoudig kan worden uitgebreid en uitgebreid
- MVC-modelcomponent kan afzonderlijk van de gebruiker worden getest
- Gemakkelijkere ondersteuning voor nieuwe soorten klanten
- De ontwikkeling van de verschillende componenten kan parallel plaatsvinden.
- Het helpt u complexiteit te vermijden door een applicatie in drie eenheden te verdelen. Model, view en controller
- Het gebruikt alleen een Front Controller-patroon dat webapplicatieverzoeken verwerkt via één enkele controller.
- Biedt de beste ondersteuning voor test gedreven ontwikkeling
- Het werkt goed voor webapps die worden ondersteund door grote teams van webontwerpers en ontwikkelaars.
- Zorgt voor een duidelijke scheiding van verantwoordelijkheden (SoC).
- Zoekmachineoptimalisatie (SEO) vriendelijk.
- Alle klassen en objecten zijn onafhankelijk van elkaar, zodat u ze afzonderlijk kunt testen.
- Het MVC-ontwerppatroon maakt logische groepering mogelijk.ping van gerelateerde acties op een controller samen.
Nadelen van het gebruik van MVC
- Moeilijk om dit model te lezen, te wijzigen, te testen en opnieuw te gebruiken
- De navigatie binnen het framework kan soms complex zijn, omdat het nieuwe lagen van abstractie introduceert.traceen ontwerp dat vereist dat gebruikers zich aanpassen aan de decompositiecriteria van MVC.
- Geen formele validatieondersteuning
- Toegenomen complexiteit en inefficiëntie van gegevens
- De moeilijkheid van het gebruik van MVC met de moderne gebruikersinterface
- Er is behoefte aan meerdere programmeurs om parallel te programmeren.
- Kennis van meerdere technologieën is vereist.
- Onderhoud van veel codes in Controller
3-tier Architectuur versus MVC Architectuur
| Parameter | 3-Tier Architectuur | MVC Architectuur |
|---|---|---|
| Communicatie | Dit type architectuurpatroon communiceert nooit rechtstreeks met de gegevenslaag. | Alle lagen communiceren rechtstreeks met behulp van driehoekige topologie. |
| Gebruik | 3-tier: veel gebruikt in webapplicaties waarbij de client, datalagen en middleware op fysiek gescheiden platforms draaien. | Over het algemeen gebruikt voor applicaties die op één grafisch werkstation draaien. |



