MVC versus MVVM – het verschil daartussen
Belangrijkste verschillen tussen MVC en MVVM
- MVC-framework is een architectuurpatroon dat een applicatie verdeelt in drie logische hoofdcomponenten: Model, View en Controller. Aan de andere kant faciliteert MVVM een scheiding van de ontwikkeling van de grafische gebruikersinterface met behulp van mark-up language of GUI-code
- In MVC is de controller het toegangspunt tot de applicatie, terwijl in MVVM de weergave het toegangspunt tot de applicatie is.
- De MVC-modelcomponent kan afzonderlijk van de gebruiker worden getest, terwijl MVVM eenvoudig is voor het testen van afzonderlijke eenheden en de code gebeurtenisgestuurd is.
- De MVC-architectuur creëert een ‘één-op-veel’-relatie tussen de Controller en de View, terwijl de MVVM-architectuur een ‘één-op-veel’-relatie definieert tussen de View en de ViewModel.
Wat is MVC?
De MVC-framework is een architectuurpatroon dat een applicatie verdeelt in drie logische hoofdcomponenten: Model, View en Controller. Vandaar de afkorting MVC. De volledige vorm MVC is Model View Controller.
In deze architectuur wordt een component gebouwd om specifieke ontwikkelingsaspecten van een applicatie te verwerken. MVC scheidt de bedrijfslogica en presentatielaag van elkaar. Dit architecturale patroon wordt voornamelijk gebruikt voor grafische gebruikersinterfaces (GUI's) op het bureaublad.
Wat is MVVM?
MVVM-architectuur faciliteert een scheiding van de ontwikkeling van de grafische gebruikersinterface met behulp van mark-uptaal of GUI-code. De volledige vorm van MVVM is Model–View–ViewModel.
Het weergavemodel van MVVM is een waardeconvertor, wat betekent dat het de verantwoordelijkheid van het weergavemodel is om de dataobjecten uit het model zodanig bloot te leggen dat objecten eenvoudig kunnen worden beheerd en gepresenteerd.
MVC-patroon
Drie belangrijke MVC-componenten zijn:
- Model: Het bevat alle gegevens en de bijbehorende logica.
- Toon: Presenteer gegevens aan de gebruiker of handelt gebruikersinteractie af.
- controller: Een interface tussen Model- en View-componenten.
Laten we elk van deze componenten in detail bekijken:
Model
De modelcomponent slaat gegevens en gerelateerde logica op. Het vertegenwoordigt gegevens die worden overgedragen tussen controllercomponenten of andere gerelateerde bedrijfslogica.
Een Controller-object helpt u bijvoorbeeld bij het ophalen van de klantinformatie uit de database. Het manipuleert gegevens en stuurt deze terug naar de database of gebruikt deze om dezelfde gegevens weer te geven.
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 uitvoer kwalijk wordt genomen naar de gebruiker.
De View 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 om indien nodig te veranderen.
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 weergave van de weergave te wijzigen (bijvoorbeeld door een bepaald document te scrollen).
MVVM-patroon
Hier is een patroon voor MVVM:
MVVM-architectuur biedt tweerichtingsdatabinding tussen view en view-model. Het helpt u ook om de propagatie van wijzigingen binnen View-Model naar de view te automatiseren. Het view-model maakt gebruik van het observer-patroon om wijzigingen in het view-model aan te brengen.
Laten we elkaar dit onderdeel in detail bekijken:
Model
Het model slaat gegevens en gerelateerde logica op. Het vertegenwoordigt gegevens die worden overgedragen tussen controllercomponenten of andere gerelateerde bedrijfslogica.
Een Controller-object haalt bijvoorbeeld de leerlinggegevens op uit de schooldatabase. Het manipuleert gegevens en stuurt deze terug naar de database of gebruikt deze om dezelfde gegevens weer te geven.
Bekijk
De weergave staat voor UI-componenten zoals HTML, CSS, jQuery, etc. In
patroonweergave is verantwoordelijk voor het weergeven van de gegevens die als uitkomst van de Controller worden ontvangen. Deze weergave is ook getransformeerd Model (s) in de User Interface (UI).
Bekijk model
Het view model is verantwoordelijk voor het presenteren van functies, opdrachten, methoden, om de status van de View te ondersteunen. Het is ook verantwoordelijk voor het bedienen van het model en het activeren van de gebeurtenissen in de View.
Verschil tussen MVC en MVVM Architectuur
Hier is het belangrijke verschil tussen MVVM en MVC
MVC (ModelView-controller) | MVVM (Modelweergave ViewModel) |
---|---|
Controller is het toegangspunt tot de Applicatie. | De weergave is het toegangspunt tot de applicatie. |
Eén op veel relaties tussen Controller en View. | Eén op veel relaties tussen View & View Model. |
Weergave Heeft geen verwijzing naar de controller | View bevat verwijzingen naar het View-Model. |
MVC is oud model | MVVM is een relatief nieuw model. |
Moeilijk om dit model te lezen, te wijzigen, te testen en opnieuw te gebruiken | Het debugproces wordt ingewikkeld als er sprake is van complexe databindingen. |
MVC-modelcomponent kan afzonderlijk van de gebruiker worden getest | Eenvoudig testen van afzonderlijke eenheden en code is gebeurtenisgestuurd. |
Kenmerken van MVC
Hier zijn belangrijke kenmerken van MVC:
- Gemakkelijke en wrijvingsloze testbaarheid. Zeer testbaar, uitbreidbaar en plugbaar raamwerk
- U kunt ook gebruikmaken van bestaande functies die worden aangeboden door ASP.NET, Django, JSP, enz.
- Het biedt volledige controle over uw HTML en uw URL's.
- Het ondersteunt Test Driven Development (TDD)
- Deze architectuur biedt scheiding van logica
- Maakt routing voor SEO-vriendelijke URL's mogelijk.
- Biedt aan om begrijpelijke en doorzoekbare URL's in kaart te brengen.
Kenmerken van MVVM
Dit zijn de kenmerken van de MVVM-architectuur:
- MVVM is geschreven voor desktopapplicaties met databindingsmogelijkheden – XAML en de INotifyPropertyChanged-interface
- Als u wijzigingen wilt aanbrengen in het weergavemodel, gebruikt het weergavemodel een waarnemerspatroon.
- Het MVVM-patroon wordt meestal gebruikt door WPF, Silverlight, nRoute, enz.
Voordelen van MVC
Hier zijn de voordelen/voordelen van MVC
- Gemakkelijkere ondersteuning voor een nieuw type klanten
- De ontwikkeling van de verschillende componenten kan parallel plaatsvinden.
- Het vermijdt complexiteit door een applicatie op te delen in afzonderlijke (MVC) eenheden
- Het gebruikt alleen een frontcontrollerpatroon dat webapplicatieverzoeken verwerkt met behulp van een enkele controller.
- Biedt de beste ondersteuning voor testgestuurde ontwikkeling
- Het werkt goed voor webapps, die worden ondersteund door grote teams van webontwerpers en ontwikkelaars.
- Het biedt een schone scheiding van zorgen (SoC).
- Alle klassen en objecten zijn onafhankelijk van elkaar, zodat u ze afzonderlijk kunt testen.
- MVC maakt het mogelijk om gerelateerde acties op een controller logisch te groeperen.
Voordelen van MVVM
Hier zijn de voor- en voordelen van MVVM
- Bedrijfslogica is losgekoppeld van Ul
- Gemakkelijk te onderhouden en te testen
- Gemakkelijk te hergebruiken componenten
- Losjes gekoppelde architectuur: MVVM maakt uw applicatiearchitectuur losjes gekoppeld.
- U kunt unit-testgevallen schrijven voor zowel het viewmodel als de modellaag zonder dat u naar de View hoeft te verwijzen.
Nadelen van MVC
Hier zijn de nadelen/nadelen van MVC
- Bedrijfslogica wordt gemengd met Ul
- Moeilijk te hergebruiken en testen te implementeren
- 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.
Nadelen van MVVM
Hier zijn de nadelen/nadelen van MVVM
- Onderhoud van veel codes in de controller
- Sommige mensen denken dat MVVM-architectuur voor eenvoudige gebruikersinterfaces overdreven kan zijn.
- Not biedt een nauwe koppeling tussen de weergave en het weergavemodel