Istraživanje obrazaca dizajna MVC, MVP i MVVM

Korisničko sučelje često sadrži puno pretrpanog koda prvenstveno zbog složene logike s kojom treba rukovati. Obrasci prezentacije dizajnirani su prvenstveno s jednim ciljem na umu, smanjujući složeni kod u prezentacijskom sloju i čineći kôd u korisničkom sučelju čistim i upravljivim. U ovom postu predstavit ću raspravu o uzorcima dizajna MVC, MVP i MVVM i naglasiti kada jedan treba biti dizajn koji bi trebao biti odabir u odnosu na drugi.

Model View Controller

Okvir Model View Controller (poznatiji kao MVC) pomaže vam u izradi aplikacija koje je lakše testirati i održavati. Sastoji se od tri glavne komponente, i to:

  1. Model - ovo je sloj koji predstavlja podatke aplikacije
  2. Pogled - predstavlja prezentaciju ili sloj korisničkog sučelja
  3. Kontrolor - ovaj sloj obično sadrži poslovnu logiku vaše aplikacije

Primarni cilj uzorka dizajna MVC-a je razdvajanje problema kako bi se olakšala provjerljivost. Uzorak dizajna upravljača modela pregleda omogućuje vam izoliranje nedoumica i olakšava testiranje i održavanje koda vaše aplikacije. U tipičnom MVC dizajnu, zahtjev prvo dolazi do kontrolera koji model veže uz odgovarajući pogled. U uzorku dizajna MVC, pogled i kontroler koriste dizajn strategije, a pogled i model sinkroniziraju se pomoću promatračkog dizajna. Stoga možemo reći da je MVC složeni obrazac. Kontroler i pogled su labavo povezani i jedan kontroler može koristiti više pogleda. Pogled se pretplaćuje na promjene u modelu.

Model View Presenter

Uzorak dizajna MVP (Model View Presenter) također se sastoji od tri komponente - modela, pogleda i prezentatora. U uzorku dizajna MVP-a, kontroler (u MVC-u) zamijenjen je prezentatorom. Za razliku od MVC dizajnerskog uzorka, Presenter se vraća na pogled zbog kojeg je ruganje pogledu lakše, a jedinstveno testiranje aplikacija koje koriste MVP dizajnerski obrazac preko MVC dizajnerskog uzorka mnogo je lakše. U MVP uzorku dizajna, voditelj manipulira modelom i također ažurira prikaz. Postoje dvije varijacije ovog dizajna. To uključuje sljedeće.

  1. Pasivni prikaz - u ovoj strategiji pogled nije svjestan modela i voditelj ažurira prikaz kako bi odražavao promjene u modelu.
  2. Nadzor kontrolora - u ovoj strategiji pogled izravno komunicira s modelom da bi povezao podatke s kontrolama podataka bez intervencije prezentatora. Voditelj je odgovoran za ažuriranje modela. Manipulira prikazom samo ako je potrebno - ako trebate izvršiti složenu logiku korisničkog sučelja.

Iako obje ove varijante promiču provjerljivost prezentacijske logike, varijanta pasivnog prikaza preferira se nad drugom varijantom (nadzorni kontroler) što se tiče provjerljivosti prvenstveno zato što imate svu ažuriranu logiku prikaza unutar prezentatora.

Uzorak dizajna MVP-a preferiran je nad MVC-om kada vaša aplikacija treba pružiti podršku za više tehnologija korisničkog sučelja. Također je poželjno ako imate složeno korisničko sučelje s puno korisničke interakcije. Ako želite imati automatizirano jedinstveno testiranje na korisničkom sučelju vaše aplikacije, obrazac dizajna MVP-a dobro odgovara i preferira se u odnosu na tradicionalni MVC dizajn.

Model - Pogled - PogledModel (MVVM)

Model - Pogled - PogledModel (MVVM) varijacija je uzorka dizajna Prezentacijskog modela Martina Fowlera. MVVM je usavršavanje popularnog MVC dizajna, a ViewModel u MVVM-u koristi se za olakšavanje razdvajanja prezentacija. U MVVM logika je pohranjena u prezentatoru, a pogled je potpuno izoliran od modela. Iako voditelj nije svjestan prikaza, pogled je svjestan prezentatora - voditelj u MVVM-u koristi se za predstavljanje apstraktnog prikaza korisničkog sučelja. Pasivni pogled podrazumijeva da pogled nema nikakvo znanje o modelu. U uzorku dizajna MVVM, pogled je aktivan i sadrži informacije o ponašanju, događajima i vezanju podataka. Imajte na umu da pogled u MVVM-u nije odgovoran za upravljanje podacima o stanju - pogled je prilično sinkroniziran s modelom prikaza.Model pregleda u MVVM-u odgovoran je za razdvajanje prezentacija i izlaže metode i naredbe za upravljanje stanjem prikaza i manipulaciju modelom.

Kako komuniciraju pogled i model prikaza u MVVM-u? Pa, pogled i viewmodel u MVVM komuniciraju koristeći metode, svojstva i događaje. Dvosmjerno vezivanje podataka ili dvosmjerno vezivanje podataka između pogleda i modela pregleda osigurava da su modeli i svojstva u modelu prikaza sinkronizirani s prikazom. Uzorak dizajna MVVM dobro je prilagođen aplikacijama kojima je potrebna podrška za dvosmjerno vezivanje podataka.