De afgelopen jaren zijn websites verschoven van eenvoudige HTML-pagina's met een beetje CSS naar ongelooflijk complexe applicaties waar duizenden ontwikkelaars tegelijkertijd aan werkten. Om met deze complexe webapplicaties te werken, gebruiken ontwikkelaars verschillende ontwerppatronen om hun projecten in te delen, om de code minder complex en gemakkelijker om mee te werken te maken. De meest populaire van deze patronen is MVC ook gekend als Modelweergavecontroller.
Wat is MVC?
De Model-View-Controller (MVC) raamwerk is een architectonisch/ontwerppatroon dat een applicatie in drie logische hoofdcomponenten verdeelt Model , Weergave , En Controleur . Elke architecturale component is gebouwd om specifieke ontwikkelingsaspecten van een applicatie af te handelen. Het isoleert de bedrijfslogica en de presentatielaag van elkaar. Het werd traditioneel gebruikt voor desktop grafische gebruikersinterfaces (GUI's) . Tegenwoordig is MVC een van de meest gebruikte industriestandaard webontwikkelingsframeworks om schaalbare en uitbreidbare projecten te creëren. Het wordt ook gebruikt voor het ontwerpen van mobiele apps.
MVC is gemaakt door Trygve Reenskaug . Het belangrijkste doel van dit ontwerppatroon was het oplossen van het probleem van gebruikers die een grote en complexe dataset besturen door een grote applicatie op te splitsen in specifieke secties die allemaal hun eigen doel hebben.
Kenmerken van MVC:
- Het zorgt voor een duidelijke scheiding van bedrijfslogica, UI-logica en invoerlogica.
- Het biedt volledige controle over uw HTML en URL's, waardoor u eenvoudig de architectuur van webapplicaties kunt ontwerpen.
- Het is een krachtige URL-toewijzingscomponent waarmee we applicaties kunnen bouwen met begrijpelijke en doorzoekbare URL's.
- Het ondersteunt Testgestuurde ontwikkeling (TDD).
Raadpleeg het artikel voor meer informatie over de voordelen van het gebruik van het MVC Framework: Voordelen van het gebruik van het MVC-framework
Componenten van MVC:
Het MVC-framework omvat de volgende 3 componenten:
- Controleur
- Model
- Weergave

MVC-architectuurontwerp
Controleur:
De controller is de component die de verbinding tussen de weergaven en het model mogelijk maakt en fungeert als tussenpersoon. De controller hoeft zich geen zorgen te maken over het omgaan met datalogica, hij vertelt het model alleen wat het moet doen. Het verwerkt alle bedrijfslogica en inkomende verzoeken, manipuleert gegevens met behulp van de Model component en interactie met de Weergave om de uiteindelijke uitvoer weer te geven.
voor elke Java
Weergave:
De Weergave component wordt gebruikt voor alle UI-logica van de applicatie. Het genereert een gebruikersinterface voor de gebruiker. Weergaven worden gemaakt door de gegevens die door de modelcomponent worden verzameld, maar deze gegevens worden niet rechtstreeks verzameld, maar via de controller. Het communiceert alleen met de controller.
Model:
De Model component komt overeen met alle datagerelateerde logica waarmee de gebruiker werkt. Dit kan de gegevens vertegenwoordigen die worden overgedragen tussen de View- en Controller-componenten of andere bedrijfslogica-gerelateerde gegevens. Het kan gegevens toevoegen aan of ophalen uit de database. Het reageert op het verzoek van de controller, omdat de controller zelf niet met de database kan communiceren. Het model communiceert met de database en geeft de benodigde gegevens terug aan de controller.
Werking van het MVC-framework met een voorbeeld:
Laten we ons voorstellen dat een eindgebruiker een verzoek naar een server stuurt om een lijst te krijgen van de studenten die in een klas studeren. De server stuurt dat verzoek vervolgens naar de specifieke controller die de studenten afhandelt. Die controller zou dan het model dat studenten behandelt, vragen om een lijst terug te sturen van alle studenten die in een klas studeren.

De gegevensstroom in MVC-componenten
Het model zou in de database de lijst met alle studenten opvragen en die lijst vervolgens terugsturen naar de controller. Als de reactie van het model succesvol was, zou de controller de weergave die bij de studenten hoort, vragen om een presentatie van de lijst met studenten terug te sturen. Deze weergave zou de lijst met studenten van de controller halen en de lijst in HTML weergeven die door de browser kan worden gebruikt.
De controller neemt vervolgens die presentatie en stuurt deze terug naar de gebruiker. Daarmee komt er een einde aan het verzoek. Als het model eerder een fout retourneerde, zou de controller die fout afhandelen door de weergave die fouten afhandelt te vragen een presentatie voor die specifieke fout weer te geven. Die foutpresentatie zou dan worden teruggestuurd naar de gebruiker in plaats van naar de studentenlijstpresentatie.
Zoals we uit het bovenstaande voorbeeld kunnen zien, verwerkt het model alle gegevens. De weergave verwerkt alle presentaties en de controller vertelt het model en de weergave gewoon wat ze moeten doen. Dit is de basisarchitectuur en werking van het MVC-framework.
Dankzij het MVC-architectuurpatroon kunnen we ons houden aan de volgende ontwerpprincipes:
1. Verdeel en heers. De drie componenten kunnen enigszins onafhankelijk worden ontworpen.
2. Vergroot de samenhang. De componenten hebben een sterkere laagcohesie dan wanneer de weergave en de controller samen in één UI-laag zouden zijn.
3. Koppeling verminderen. De communicatiekanalen tussen de drie componenten zijn minimaal en gemakkelijk te vinden.
4. Vergroot hergebruik. De weergave en controller maken normaal gesproken uitgebreid gebruik van herbruikbare componenten voor verschillende soorten UI-bedieningselementen. De gebruikersinterface zal echter toepassingsspecifiek worden en daarom niet gemakkelijk herbruikbaar zijn.
5. Ontwerp voor flexibiliteit. Het is meestal vrij eenvoudig om de gebruikersinterface te wijzigen door de weergave, de controller of beide te wijzigen.
Voordelen van MVC:
- Codes zijn gemakkelijk te onderhouden en kunnen eenvoudig worden uitgebreid.
- De MVC model onderdeel kan afzonderlijk worden getest.
- De componenten van MVC kunnen gelijktijdig worden ontwikkeld.
- Het vermindert de complexiteit door een applicatie in drie eenheden te verdelen. Model, weergave en controller.
- Het ondersteunt Testgestuurde ontwikkeling (TDD).
- Het werkt goed voor webapps die worden ondersteund door grote teams van webontwerpers en ontwikkelaars.
- Deze architectuur helpt componenten onafhankelijk te testen, aangezien alle klassen en objecten onafhankelijk van elkaar zijn
- Zoekmachineoptimalisatie (SEO) Vriendelijk.
Nadelen van MVC:
- Het is moeilijk om dit model te lezen, te veranderen, te testen en opnieuw te gebruiken
- Het is niet geschikt voor het bouwen van kleine toepassingen.
- De inefficiëntie van gegevenstoegang in zicht.
- De raamwerknavigatie kan complex zijn omdat het nieuwe abstractielagen introduceert, waardoor gebruikers zich moeten aanpassen aan de decompositiecriteria van MVC.
- Toegenomen complexiteit en inefficiëntie van gegevens
Populaire MVC-frameworks:
Enkele van de meest populaire en veelgebruikte MVC-frameworks worden hieronder vermeld.
converteren van char naar int java
- Robijn op rails
- Django
- CherryPy
- Lente MVC
- Katalysator
- Sporen
- Zend-framework
- Brandstof PHP
- Laravel
- Symfonie
MVC wordt over het algemeen gebruikt bij applicaties die op één grafisch werkstation draaien. De verdeling van logische componenten maakt leesbaarheid en modulariteit mogelijk en maakt het comfortabeler voor het testgedeelte.