Programiranje

Raziskovanje vzorcev oblikovanja MVC, MVP in MVVM

Uporabniški vmesnik pogosto vsebuje veliko neredne kode, predvsem zaradi zapletene logike, ki jo mora obravnavati. Predstavitveni vzorci so zasnovani predvsem z enim ciljem v mislih, zmanjšujejo zapleteno kodo v predstavitveni plasti in omogočajo, da je koda v uporabniškem vmesniku čista in obvladljiva. V tem prispevku bom predstavil razpravo o vzorcih oblikovanja MVC, MVP in MVVM ter poudaril, kdaj naj bo ena izbira pred drugo.

Model View Controller

Okvir Model View Controller (splošno znan kot MVC) vam pomaga pri izdelavi aplikacij, ki jih je lažje preizkusiti in vzdrževati. Sestavljen je iz treh glavnih komponent, in sicer:

  1. Model - to je plast, ki predstavlja podatke aplikacije
  2. Pogled - predstavlja predstavitev ali plast uporabniškega vmesnika
  3. Krmilnik - ta plast običajno vsebuje poslovno logiko vaše aplikacije

Primarni cilj vzorca zasnove MVC je ločitev skrbi za lažjo preizkusnost. Vzorec zasnove krmilnika modela pogleda vam omogoča, da izolirate pomisleke in olajšate preizkušanje in vzdrževanje kode vaše aplikacije. V tipični zasnovi MVC zahteva najprej prispe na krmilnik, ki model poveže z ustreznim pogledom. V vzorcu načrtovanja MVC pogled in krmilnik uporabljata zasnovo strategije, pogled in model pa sta sinhronizirana z uporabo opazovalne zasnove. Zato lahko rečemo, da je MVC sestavljeni vzorec. Krmilnik in pogled sta ohlapno povezana in enega krmilnika lahko uporablja več pogledov. Pogled se naroči na spremembe v modelu.

Model View Presenter

Oblikovni vzorec MVP (Model View Presenter) je sestavljen tudi iz treh komponent - modela, pogleda in predstavitelja. V vzorcu zasnove MVP je krmilnik (v MVC) nadomeščen s predstaviteljem. V nasprotju z vzorcem oblikovanja MVC se Presenter sklicuje nazaj na pogled, zaradi česar je posmehovanje pogleda lažje, enotno testiranje aplikacij, ki uporabljajo vzorec oblikovanja MVP nad vzorcem oblikovanja MVC, pa je veliko lažje. V vzorcu oblikovanja MVP voditelj manipulira z modelom in posodobi tudi pogled. Obstajata dve različici tega oblikovanja. Sem spadajo naslednje.

  1. Pasivni pogled - v tej strategiji pogled ne pozna modela in voditelj posodobi pogled, da odraža spremembe v modelu.
  2. Nadzor krmilnika - pri tej strategiji pogled neposredno sodeluje z modelom, da podatke veže na kontrolnike podatkov brez posredovanja predstavitelja. Voditelj je odgovoren za posodobitev modela. Pogled manipulira le, če je potrebno - če potrebujete zapleteno logiko uporabniškega vmesnika.

Medtem ko obe različici spodbujata preizkusnost predstavitvene logike, je pasivna različica pogleda prednostna pred drugo različico (nadzorni krmilnik), kar zadeva preverljivost, predvsem zato, ker imate v predstavitvi posodobljeno vso logiko pogleda.

Vzorec zasnove MVP je boljši kot MVC, če mora vaša aplikacija zagotavljati podporo za več tehnologij uporabniškega vmesnika. Prav tako je zaželeno, če imate zapleten uporabniški vmesnik z veliko uporabniškega sodelovanja. Če želite imeti samodejni preizkus enote na uporabniškem vmesniku vaše aplikacije, je vzorec načrtovanja MVP zelo primeren in prednost pred tradicionalnim zasnovo MVC.

Model - Pogled - PogledModel (MVVM)

Model - Pogled - PogledModel (MVVM) je različica vzorčnega modela vzorčnega modela Martina Fowlerja. MVVM je izpopolnitev priljubljene zasnove MVC, ViewModel v MVVM pa se uporablja za olajšanje ločevanja predstavitev. V MVVM je logika shranjena v predstavitelju in pogled je popolnoma ločen od modela. Medtem ko se voditelj ne zaveda pogleda, se pogled zaveda voditelja - predstavitelj v MVVM se uporablja za predstavitev abstraktnega pogleda uporabniškega vmesnika. Pasivni pogled pomeni, da pogled nima nobenega znanja o modelu. V vzorcu načrtovanja MVVM je pogled aktiven in vsebuje vedenja, dogodke in informacije o vezavi podatkov. Upoštevajte, da pogled v MVVM ni odgovoren za upravljanje informacij o stanju - pogled je precej sinhroniziran z modelom pogleda. Model pogleda v MVVM je odgovoren za ločevanje predstavitev in razkriva metode in ukaze za upravljanje stanja pogleda in manipulacijo z modelom.

Kako komunicirajo pogled in model pogleda v MVVM? No, pogled in model pogleda v MVVM komunicira z uporabo metod, lastnosti in dogodkov. Dvosmerno vezavo podatkov ali dvosmerno povezovanje podatkov med pogledom in modelom pogleda zagotavlja, da so modeli in lastnosti v modelu pogleda sinhronizirani s pogledom. Vzorec zasnove MVVM je zelo primeren za aplikacije, ki potrebujejo podporo za dvosmerno vezavo podatkov.

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