Programmering

Utforske MVC, MVP og MVVM designmønstre

Brukergrensesnittet inneholder ofte mye rotete kode, først og fremst på grunn av den kompliserte logikken den trenger å håndtere. Presentasjonsmønstrene utformes hovedsakelig med et mål i tankene, reduserer den komplekse koden i presentasjonslaget og gjør koden i brukergrensesnittet ren og håndterbar. I dette innlegget vil jeg presentere en diskusjon om MVC-, MVP- og MVVM-designmønstrene og fremheve når den ene skal være designens valg fremfor den andre.

Model View-kontroller

Model View Controller (kjent som MVC) rammeverk hjelper deg med å bygge applikasjoner som er lettere å teste og vedlikeholde. Den består av tre hovedkomponenter, nemlig:

  1. Modell - dette er laget som representerer applikasjonens data
  2. Vis - dette representerer presentasjonen eller brukergrensesnittlaget
  3. Kontroller - dette laget inneholder vanligvis forretningslogikken til applikasjonen din

Det primære målet for MVC-designmønsteret er separasjon av bekymringer for å lette testbarhet. Model View Controller designmønsteret lar deg isolere bekymringene og gjør applikasjonens kode lettere å teste og vedlikeholde. I et typisk MVC-design kommer forespørselen først til kontrolleren som binder modellen med den tilsvarende visningen. I MVC-designmønsteret bruker visningen og kontrolleren strategidesign, og visningen og modellen synkroniseres ved hjelp av observatørdesignet. Derfor kan vi si at MVC er et sammensatt mønster. Kontrolleren og visningen er løst koblet, og en kontroller kan brukes av flere visninger. Visningen abonnerer på endringene i modellen.

Model View-presentatør

Designmønsteret MVP (Model View Presenter) består også av tre komponenter - modellen, visningen og presentatøren. I MVP-designmønsteret erstattes kontrolleren (i MVC) av presentatøren. I motsetning til MVC-designmønsteret, henviser presentatøren tilbake til visningen som det er lettere å spotte visningen, og enhetstesting av applikasjoner som utnytter MVP-designmønsteret over MVC-designmønsteret er mye enklere. I MVP-mønsteret manipulerer programlederen modellen og oppdaterer også visningen. Det er to varianter av dette designet. Disse inkluderer følgende.

  1. Passiv visning - i denne strategien er visningen ikke klar over modellen, og presentatøren oppdaterer visningen for å gjenspeile endringene i modellen.
  2. Supervising Controller - i denne strategien samhandler visningen direkte med modellen for å binde data til datakontrollene uten inngripen fra presentatøren. Presentatøren er ansvarlig for oppdatering av modellen. Den manipulerer visningen bare om nødvendig - hvis du trenger en kompleks brukergrensesnittlogikk som skal utføres.

Mens begge disse variantene fremmer testbarheten til presentasjonslogikken, foretrekkes den passive visningsvarianten fremfor den andre varianten (kontrollerende kontroller) så langt som testbarhet gjelder først og fremst fordi du har all visningsoppdatert logikk inne i presentatøren.

MVP-designmønsteret foretrekkes fremfor MVC når applikasjonen din trenger støtte for flere brukergrensesnittteknologier. Det er også å foretrekke hvis du har et komplekst brukergrensesnitt med mye brukerinteraksjon. Hvis du ønsker å ha automatisert enhetstest på brukergrensesnittet til applikasjonen din, er MVP-mønsteret godt egnet og foretrukket fremfor tradisjonell MVC-design.

Modell - Vis - ViewModel (MVVM)

The Model - View - ViewModel (MVVM) er en variant av Martin Fowlers presentasjonsmodell designmønster. MVVM er en forbedring av det populære MVC-designet, og ViewModel i MVVM brukes til å legge til rette for presentasjonsseparasjon. I MVVM er logikken lagret i presentatøren, og utsikten er helt isolert fra modellen. Mens presentatøren ikke er klar over visningen, er visningen klar over presentatøren - presentatøren i MVVM brukes til å representere et abstrakt syn på brukergrensesnittet. En passiv visning innebærer at visningen ikke har noen kjennskap til modellen. I MVVM-designmønsteret er View aktiv og inneholder atferd, hendelser og databindende informasjon. Merk at visningen i MVVM ikke er ansvarlig for å administrere tilstandsinformasjonen - visningen er ganske synkronisert med visningsmodellen. Visningsmodellen i MVVM er ansvarlig for presentasjonsseparasjon og eksponerer metoder og kommandoer for å administrere tilstanden til en visning og manipulere modellen.

Hvordan kommuniserer utsikten og visningsmodellen i MVVM? Visningen og visningsmodellen i MVVM kommuniserer ved hjelp av metoder, egenskaper og hendelser. Toveis databinding eller toveis databinding mellom visningen og visningsmodellen sørger for at modellene og egenskapene i visningsmodellen er synkronisert med visningen. MVVM-mønsteret passer godt i applikasjoner som trenger støtte for toveis databinding.

$config[zx-auto] not found$config[zx-overlay] not found