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

