MVC vs MVVM - Forskjellen mellom dem
Viktige forskjeller mellom MVC og MVVM
- MVC-rammeverket er et arkitektonisk mønster som skiller en applikasjon i tre logiske hovedkomponenter Model, View og Controller. På den annen side letter MVVM en separasjon av utviklingen av det grafiske brukergrensesnittet ved hjelp av mark-up language eller GUI-kode
- I MVC er kontrolleren inngangspunktet til applikasjonen, mens i MVVM er visningen inngangspunktet til applikasjonen.
- MVC Model-komponent kan testes separat fra brukeren, mens MVVM er enkel for separat enhetstesting, og koden er hendelsesdrevet.
- MVC-arkitektur etablerer et "en-til-mange"-forhold mellom kontrolleren og visningen, mens MVVM-arkitektur definerer et "en-til-mange"-forhold mellom visningen og visningsmodellen.
Hva er MVC?
Ocuco MVC-rammeverk er et arkitektonisk mønster som skiller en applikasjon i tre logiske hovedkomponenter Model, View og Controller. Derav forkortelsen MVC. MVC i full form er Model View Controller.
I denne arkitekturen bygges en komponent for å håndtere spesifikke utviklingsaspekter ved en applikasjon. MVC skiller forretningslogikken og presentasjonslaget fra hverandre. Dette arkitektoniske mønsteret brukes hovedsakelig for skrivebordsgrafiske brukergrensesnitt (GUIer).
Hva er MVVM?
MVVM-arkitektur muliggjør en separasjon av utvikling av det grafiske brukergrensesnittet ved hjelp av mark-up language eller GUI-kode. Den fullstendige formen for MVVM er Model–View–ViewModel.
Visningsmodellen til MVVM er en verdikonverterer som betyr at det er visningsmodellens ansvar å eksponere dataobjektene fra Modellen på en slik måte at objekter enkelt administreres og presenteres.
MVC -mønster

Tre viktige MVC-komponenter er:
- Modell: Den inkluderer alle dataene og tilhørende logikk.
- Utsikt: Presentere data for brukeren eller håndtere brukerinteraksjon.
- Controller: Et grensesnitt mellom Model- og View-komponenter.
La oss se hver av disse komponentene i detalj:
Modell
Modellkomponenten lagrer data og relatert logikk. Det representerer data som overføres mellom kontrollerkomponenter eller annen relatert forretningslogikk.
For eksempel hjelper et Controller-objekt deg med å hente kundeinformasjonen fra databasen. Den manipulerer data og sender den tilbake til databasen eller bruker den til å gjengi de samme dataene.
Se
En visning er den delen av applikasjonen som representerer presentasjonen av data. Visninger opprettes av dataene samlet fra modelldataene. En visning ber modellen om å gi informasjon slik at den sender utdataene til brukeren.
Visningen representerer også dataene fra diagrammer, diagrammer og tabeller. For eksempel vil enhver kundevisning inkludere alle UI-komponentene som tekstbokser, rullegardinmenyene osv.
controller
Kontrolleren er den delen av applikasjonen som håndterer brukerinteraksjonen. Kontrolleren tolker inndataene fra musen og tastaturet fra brukeren, og informerer modellen og visningen om å endres etter behov.
En kontroller sender kommandoer til modellen for å oppdatere dens tilstand (f.eks. lagring av et spesifikt dokument). Kontrolleren sender også kommandoer til den tilknyttede visningen for å endre visningens presentasjon (for eksempel rulle et bestemt dokument).
MVVM-mønster
Her er et mønster for MVVM:

MVVM-arkitektur tilbyr toveis databinding mellom visning og visningsmodell. Det hjelper deg også med å automatisere spredningen av modifikasjoner i View-Model til visningen. View-modellen bruker observatørmønster for å gjøre endringer i view-modellen.
La oss se hverandre denne komponenten i detalj:
Modell
Modellen lagrer data og relatert logikk. Det representerer data som overføres mellom kontrollerkomponenter eller annen relatert forretningslogikk.
For eksempel vil et Controller-objekt hente elevinformasjonen fra skolens database. Den manipulerer data og sender dem tilbake til databasen eller bruker den til å gjengi de samme dataene.
Se
The View står for UI-komponenter som HTML, CSS, jQuery, etc. In
mønstervisning holdes ansvarlig for å vise dataene som mottas fra kontrolløren som et resultat. Denne visningen er også transformert modell(er) til brukergrensesnitt (UI).
Vis modell
Visningsmodellen er ansvarlig for å presentere funksjoner, kommandoer, metoder for å støtte visningens tilstand. Det er også ansvarlig for å betjene modellen og aktivere hendelsene i visningen.
Forskjellen mellom MVC og MVVM Architecture
Her er den viktige forskjellen mellom MVVM og MVC
| MVC (Model View Controller) | MVVM (Model View ViewModel) |
|---|---|
| Kontrolleren er inngangspunktet til applikasjonen. | Utsikten er inngangspunktet til applikasjonen. |
| En til mange relasjoner mellom Controller & View. | Ett til mange forhold mellom View & View Model. |
| Visning har ikke referanse til kontrolleren | Visningen har referanser til Visningsmodellen. |
| MVC er gammel modell | MVVM er en relativt ny modell. |
| Vanskelig å lese, endre, enhetsteste og gjenbruke denne modellen | Feilsøkingsprosessen vil være komplisert når vi har komplekse databindinger. |
| MVC-modellkomponent kan testes separat fra brukeren | Enkel for separat enhetstesting og koden er hendelsesdrevet. |
Funksjoner av MVC
Her er viktige funksjoner til MVC:
- Enkel og friksjonsfri testbarhet. Svært testbart, utvidbart og pluggbart rammeverk
- Du kan også utnytte eksisterende funksjoner som tilbys av ASP.NET, Django, JSP, etc.
- Den gir full kontroll over HTML-koden din så vel som din URLs.
- Den støtter Test Driven Development (TDD)
- Denne arkitekturen tilbyr separasjon av logikk
- Tillater ruting for SEO-vennlighet URLs.
- Tilbyr å kartlegge for forståelig og søkbar URLs.
Funksjoner av MVVM
Her er funksjonene til MVVM-arkitekturen:
- MVVM er skrevet for skrivebordsapplikasjoner med databindingsmuligheter – XAML og INotifyPropertyChanged-grensesnittet
- Hvis du ønsker å gjøre modifikasjoner i visningsmodellen, bruker visningsmodellen et observatørmønster.
- MVVM-mønsteret brukes mest av WPF, Silverlight, nRoute osv.
Fordeler med MVC
Her er fordeler/fordeler med MVC
- Enklere støtte for en ny type klienter
- Utviklingen av de ulike komponentene kan utføres parallelt.
- Det unngår kompleksitet ved å dele en applikasjon i separate (MVC) enheter
- Den bruker bare et frontkontrollermønster som behandler nettapplikasjonsforespørsler ved å bruke en enkelt kontroller.
- Tilbyr den beste støtten for testdrevet utvikling
- Det fungerer bra for nettapper, som støttes av store team av webdesignere og utviklere.
- Det gir en ren separasjon av bekymringer (SoC).
- Alle klassifiserte og objekter er uavhengige av hverandre slik at du kan teste dem separat.
- MVC tillater logiske grupperping av relaterte handlinger på en kontroller sammen.
Fordeler med MVVM
Her er fordeler/fordeler med MVVM
- Forretningslogikk er frikoblet fra Ul
- Enkel å vedlikeholde og teste
- Enkel å gjenbruke komponenter
- Løst koblet arkitektur: MVVM gjør applikasjonsarkitekturen din like løst koblet.
- Du kan skrive enhetstestsaker for både visningsmodellen og modelllaget uten å måtte referere til visningen.
Ulemper med MVC
Her er ulemper/ulemper med MVC
- Forretningslogikk er blandet med Ul
- Vanskelig å gjenbruke og implementere tester
- Ingen formell valideringsstøtte
- Økt kompleksitet og ineffektivitet av data
- Vanskeligheten med å bruke MVC med det moderne brukergrensesnittet
- Det er behov for flere programmerere for å utføre parallell programmering.
- Kunnskap om flere teknologier er nødvendig.
Ulemper med MVVM
Her er ulemper/ulemper med MVVM
- Vedlikehold av mange koder i kontrolleren
- Noen mennesker tror at for enkle brukergrensesnitt av MVVM-arkitektur kan være overkill.
- Ikke tilbyr tett kobling mellom visning og visningsmodell

