MVC Framework-zelfstudie voor beginners: wat is, Architectuur & Voorbeeld
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 veel gebruikt in moderne webapplicaties
Kenmerken van MVC
- Gemakkelijke en wrijvingsloze testbaarheid. Zeer testbaar, uitbreidbaar en plugbaar raamwerk
- Om een โโwebapplicatiearchitectuur te ontwerpen met behulp van het MVC-patroon, biedt het volledige controle over uw HTML en uw URL's
- 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-routering voor SEO-vriendelijke URL's. Krachtige URL-mapping voor begrijpelijke en doorzoekbare URL's
- Ondersteuning voor Test Driven Development (TDD)
MVC Architectuur
Hier is 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 elkaar dit onderdeel in detail bekijken:
Bekijk
Een weergave is dat deel van de applicatie dat de presentatie van gegevens vertegenwoordigt.
Weergaven worden gemaakt op basis van de gegevens die zijn verzameld uit de modelgegevens. Een weergave vraagt โโhet model om informatie te geven, zodat de uitvoerpresentatie aan de gebruiker wordt gepresenteerd.
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 Verwerkingsverantwoordelijke is dat deel van de applicatie dat de gebruikersinteractie afhandelt. De controller interpreteert de muis- en toetsenbordinvoer van de gebruiker en informeert het model en de weergave indien nodig.
Een controller stuurt opdrachten naar het model om de status ervan bij te werken (bijvoorbeeld een specifiek document opslaan). De controller stuurt ook opdrachten naar de bijbehorende weergave om de presentatie van de weergave te wijzigen (bijvoorbeeld door een bepaald document te scrollen).
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 het verzoek van de views en reageert ook op instructies van de controller om zichzelf bij te werken. Het is ook het laagste niveau van het patroon dat verantwoordelijk is voor het bijhouden van 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, stuur, 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
- CodeIgniter
- 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.
- Biedt een schone scheiding van zorgen (SoC).
- Zoekmachineoptimalisatie (SEO) vriendelijk.
- Alle klassen en objecten zijn onafhankelijk van elkaar, zodat u ze afzonderlijk kunt testen.
- Het MVC-ontwerppatroon maakt het logisch groeperen van gerelateerde acties op een controller mogelijk.
Nadelen van het gebruik van MVC
- Moeilijk om dit model te lezen, te wijzigen, te testen en opnieuw te gebruiken
- De navigatie in het framework kan soms complex zijn, omdat het nieuwe abstractielagen introduceert waardoor gebruikers zich moeten 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. |
Samenvatting
- De MVC is een architectuurpatroon dat een applicatie verdeelt in 1) Model, 2) View en 3) Controller
- 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
- MVC-architectuur werd voor het eerst besproken in 1979 door Trygve Reenskaug
- MVC-architectuur in Java is een zeer testbaar, uitbreidbaar en plugbaar raamwerk
- Enkele populaire MVC-frameworks zijn Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP, enz.