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.

Forskjellen mellom MVVM og MVC

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


MVC Architecture
MVC Architecture

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 Architecture
MVVM Architecture

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

Oppsummer dette innlegget med: