MVC, MVP, MVVM: katerega izbrati?

MVC, MVP, MVVM: katerega izbrati?

Sodobne aplikacije potrebujejo tako raznolike funkcije, da je proces njihovega razvoja narasel v velikosti in kompleksnosti. Za pomoč si lahko pomagate z vzorcem arhitekturnega oblikovanja. Podpirajo gradnjo aplikacij, ki jih je enostavno testirati in vzdrževati.





Trije najbolj priljubljeni oblikovalski vzorci so MVC, MVP in MVVM. MVC pomeni model, pogled in krmilnik, medtem ko MVP pomeni model, pogled in predstavitelja, MVVM pa model, pogled in model pogleda.





Arhitekturni in oblikovalski vzorci

Arhitekturni vzorec

Arhitekturni vzorec pojasnjuje in definira nekatere ključne komponente arhitekture programske opreme. Čeprav arhitekturni vzorec posreduje podobo sistema, to ni arhitektura . Pravzaprav je to splošna in ponovno uporabljiva rešitev za pogosto pojavljajočo težavo v arhitekturi programske opreme v določenem kontekstu.





Oblikovalski vzorec

Oblikovalski vzorec je formalizirana najboljša praksa, ki jo lahko uporabite za reševanje pogostih težav pri načrtovanju aplikacije ali sistema.

Razlika med arhitekturnim in oblikovalskim vzorcem

Začnimo s pogostim izrazom – vzorec. V programski opremi je vzorec ponavljajoča se lastnost, ki vam omogoča, da razčlenite ogromno in kompleksno strukturo na manjše, enostavnejše komponente. Ta vzorec lahko uporabite za izdelavo splošne rešitve za vrsto problemov.



Na vsaki stopnji razvoja programske opreme boste uporabljali različna orodja. Na manjših ravneh so ta orodja oblikovalski vzorci. Arhitekturni vzorci obstajajo na večjih ravneh in programske paradigme na izvedbeni ravni.

Zakaj potrebujemo vzorce arhitekturnega oblikovanja?

Med razvojem programske opreme lahko uporabite vzorce arhitekturnega načrtovanja za reševanje pogostih težav. Dobra arhitektura vam lahko pomaga tudi pri:





kako vidim svoje naročnike na youtube
  • Kompleksne naloge razdelite na enostavnejše.
  • Zmanjšajte napake.
  • Izdelajte kodo, ki jo je mogoče preizkusiti in vzdrževati.

Toda brez arhitekturnega vzorca se lahko soočite s težavami pri vzdrževanju poslovne logike vaše aplikacije.

Model, pogled, ViewModel, krmilnik in predstavitelj

Preden pogledate vsak vzorec, si oglejte izraze, ki jih sestavljajo:





  • Model shranjuje podatke in neposredno komunicira z bazo podatkov. Model je del, ki predstavlja vaše podatke in logiko aplikacije. Določa poslovna pravila, ki upravljajo ravnanje s podatki, spreminjanje ali obdelavo.
  • Pogled prikazuje podatke modela in je odgovoren za predstavitev podatkov v uporabniškem vmesniku.
  • ViewModel je ekskluziven za vzorec MVVM. To je abstrakcija sloja pogleda in deluje tudi kot ovoj za podatke modela.
  • Krmilnik je komponenta, ki združuje pogled in model.
  • Voditelj je komponenta, ki obstaja samo v modelu MVP. Presenter dobi vhodne podatke iz komponente pogleda in obdela podatke s pomočjo modela.

Vzorci MVC, MVP in MVVM

Vzorec model-pogled-krmilnik

The Arhitekturni vzorec MVC je bil prvi in ​​je danes priljubljen na področju spletnih aplikacij. Predstavljen je bil v sedemdesetih letih prejšnjega stoletja. Ta vzorec vam omogoča, da zgradite aplikacijo okoli ločitve zadev (SoC). Olajša trud, ki ga potrebujete za testiranje, vzdrževanje in razvoj vaše aplikacije.

V vzorcu MVC model ne razume pogleda ali krmilnika. Opazovalec modela bo prejel opozorilo vsakič, ko pride do spremembe pogleda in krmilnika. Krmilnik pomaga procesu usmerjanja povezati model z ustreznim pogledom.

Nekatere prednosti vzorca MVC so:

  • Ločevanje skrbi (bolj osredotočeno).
  • Olajša testiranje in upravljanje kode.
  • Spodbuja ločevanje slojev aplikacije.
  • Boljša organizacija kode in možnost ponovne uporabe.

Takole deluje MVC:

  Slika diagrama, ki prikazuje, kako deluje MVC

Zaradi SoC lahko MVC zmanjša velikost kode in naredi dobro kodo, ki je čista in obvladljiva.

Vzorec Model-Pogled-Presenter

Vzorec MVP si z MVC deli dve komponenti: model in pogled. Nadomešča krmilnika s prezenterjem. Voditelj – kot pove že ime – se uporablja za predstavitev nečesa. Omogoča vam lažje posmehovanje pogledu.

V MVP ima predstavitelj funkcijo »srednjega človeka«, ker je vsa predstavitvena logika potisnjena vanj. Pogled in predstavitelj v MVP sta tudi neodvisna drug od drugega in sodelujeta prek vmesnika.

Tukaj je ilustracija, kako deluje vzorec MVP:

  Slika diagrama, ki prikazuje, kako deluje MVP

Predstavitelj prejme vnos od uporabnika prek pogleda. Nato obdeluje dejanja uporabnika s pomočjo modela in posreduje rezultate nazaj v pogled. Voditelj komunicira s pogledom preko vmesnikov.

Vzorec Model-Pogled-PogledModel

MVVM je sodobna evolucija MVC. Glavni cilj MVVM je zagotoviti jasno ločitev med domensko logiko in predstavitveno plastjo. MVVM podpira dvosmerno povezovanje podatkov med pogledom in modelom pogleda.

Vzorec MVVM vam omogoča, da ločite pogled in model kode. To pomeni, da ko se model spremeni, pogleda ni treba, in obratno. Z uporabo modela pogleda lahko izvedete testiranje enote in preizkusite svoje logično vedenje, ne da bi vključili svoj pogled.

Tukaj je ilustracija delovanja MVVM:

  Slika diagrama, ki prikazuje, kako deluje MVVM

Kdaj uporabiti MVC, MVP in MVVM

Zdaj, ko ste spoznali vsak vzorec, ugotovite, kdaj ga uporabiti.

Kdaj uporabiti MVC

MVC je preprosto implementacija ločevanja zadev. Če mora vaša aplikacija ločiti podatke (model), obdelavo podatkov (krmilnik) in predstavitev podatkov (pogled), bo MVC dobro deloval. MVC dobro služi tudi v aplikaciji, kjer se lahko vir podatkov in/ali predstavitev podatkov kadar koli spremeni.

Kdaj uporabiti MVP

MVP lahko uporabite, če ima vaša aplikacija dvosmerni tok. Če morajo uporabniške interakcije nekaj zahtevati od modela in bo rezultat te zahteve takoj spremenil uporabniški vmesnik, razmislite o MVP.

Kdaj uporabiti MVVM

MVVM boste želeli uporabiti, ko:

  • Projekt morate deliti z oblikovalcem, oblikovanje in razvojno delo pa lahko potekata neodvisno.
  • Za svoje rešitve potrebujete testiranje enot.
  • Imeti morate komponente, ki jih je mogoče ponovno uporabiti, znotraj in med projekti v vaši organizaciji.
  • Želite več prilagodljivosti za spreminjanje svojih pogledov, ne da bi morali preoblikovati drugo logiko v osnovi kode.

Kateri vzorec izbrati?

Glavni razlog za uporabo oblikovalskega vzorca je zmanjšanje kompleksnosti. To lahko storite tako, da zmanjšate splošno zapletenost ali zamenjate neznano zapletenost z znano. Če vzorec načrtovanja ne more zmanjšati kompleksnosti na nobenega od teh dveh načinov, ga ne uporabljajte; ne bo dodal nobene vrednosti.

Če ste res prepričani, da bi morali uporabiti oblikovalski vzorec, poskusite narediti kontrolni seznam. Temeljite na situacijah, ki ste jih videli tukaj, in izberite najboljšo možnost za svoj projekt.