Programmēšana

MVC, MVP un MVVM dizaina modeļu izpēte

Lietotāja saskarne bieži satur daudz pārblīvēta koda, galvenokārt sarežģītās loģikas dēļ, kas tai jārīkojas. Prezentācijas modeļi galvenokārt tiek veidoti, domājot par vienu mērķi, samazinot sarežģīto kodu prezentācijas slānī un padarot kodu lietotāja saskarnē tīru un pārvaldāmu. Šajā amatā es iepazīstināšu ar diskusiju par MVC, MVP un MVVM dizaina modeļiem un uzsvēršu, kad vienam jābūt izvēles dizainam pār otru.

Modeļa skata kontrolieris

Modeļa skata kontroliera (parasti pazīstams kā MVC) ietvars palīdz veidot lietojumprogrammas, kuras ir vieglāk pārbaudīt un uzturēt. Tas sastāv no trim galvenajiem komponentiem, proti:

  1. Modelis - tas ir slānis, kas attēlo lietojumprogrammas datus
  2. Skats - tas attēlo prezentāciju vai lietotāja saskarnes slāni
  3. Kontrolieris - šis slānis parasti satur jūsu lietojumprogrammas biznesa loģiku

MVC dizaina modeļa galvenais mērķis ir bažu nodalīšana, lai atvieglotu pārbaudāmību. Modeļa skata kontroliera noformējuma modelis ļauj jums izolēt problēmas un atvieglo lietojumprogrammas koda pārbaudi un uzturēšanu. Tipiskā MVC dizainā pieprasījums vispirms nonāk pie kontroliera, kas modeli sasaista ar atbilstošo skatu. MVC dizaina shēmā skats un kontrolieris izmanto stratēģijas izstrādi, un skats un modelis tiek sinhronizēti, izmantojot novērotāja dizainu. Tādējādi mēs varam teikt, ka MVC ir salikts modelis. Kontrolieris un skats ir brīvi savienoti, un vienu kontrolieri var izmantot vairākos skatos. Skats piekrīt modeļa izmaiņām.

Modeļa skata prezentētājs

MVP (Model View Presenter) dizaina modelis sastāv arī no trim komponentiem - modeļa, skata un prezentētāja. MVP noformējuma modelī kontrolleri (MVC) aizstāj Presenter. Atšķirībā no MVC dizaina modeļa, prezentētājs atsaucas atpakaļ uz skatu, kura dēļ skata ņirgāšanās ir vieglāka, un to lietojumprogrammu vienību pārbaude, kuras izmanto MVP dizaina modeli virs MVC dizaina modeļa, ir daudz vienkāršākas. MVP noformējuma modelī vadītājs manipulē ar modeli un arī atjaunina skatu. Šim dizainam ir divas variācijas. Tie ietver sekojošo.

  1. Pasīvais skats - šajā stratēģijā skats nav informēts par modeli, un prezentētājs atjaunina skatu, lai atspoguļotu izmaiņas modelī.
  2. Uzraugošais kontrolieris - šajā stratēģijā skats mijiedarbojas ar modeli tieši, lai datus sasaistītu ar datu vadīklām bez prezentētāja iejaukšanās. Prezidents ir atbildīgs par modeļa atjaunināšanu. Tas manipulē ar skatu tikai tad, ja nepieciešams - ja izpildei nepieciešama sarežģīta lietotāja saskarnes loģika.

Lai gan abi šie varianti veicina prezentācijas loģikas pārbaudāmību, priekšroka dodama pasīvā skata variantam salīdzinājumā ar citu variantu (pārraudzības kontrolieris), jo tas attiecas galvenokārt uz pārbaudāmību, jo jums ir visa skata atjauninātā loģika prezentētāja iekšienē.

MVP dizaina modelis ir vēlams, salīdzinot ar MVC, ja lietojumprogrammai ir jāsniedz atbalsts vairākām lietotāja saskarnes tehnoloģijām. Tas ir vēlams arī tad, ja jums ir sarežģīts lietotāja interfeiss ar daudz lietotāju mijiedarbību. Ja vēlaties, lai jūsu lietojumprogrammas lietotāja saskarnē tiktu veikta automātiska vienības pārbaude, MVP dizaina modelis ir labi piemērots un priekšroku dod tradicionālajam MVC dizainam.

Modelis - skats - ViewModel (MVVM)

Model - View - ViewModel (MVVM) ir Martina Faulera prezentācijas modeļa dizaina modeļa variācija. MVVM ir populārā MVC dizaina uzlabojums, un ViewModel MVVM tiek izmantots prezentāciju atdalīšanas atvieglošanai. MVVM loģika tiek saglabāta prezentētājā, un skats ir pilnībā izolēts no modeļa. Kamēr vadītājs nezina skatu, skats ir informēts par prezentētāju - MVVM prezentētājs tiek izmantots, lai attēlotu abstraktu lietotāja saskarnes skatu. Pasīvais skats nozīmē, ka skatam nav nekādu zināšanu par modeli. MVVM noformējuma modelī skats ir aktīvs, un tajā ir informācija par uzvedību, notikumiem un saistošo informāciju. Ņemiet vērā, ka MVVM skatījums nav atbildīgs par stāvokļa informācijas pārvaldību - skats drīzāk tiek sinhronizēts ar skatu modeli. MVVM skata modelis ir atbildīgs par prezentācijas atdalīšanu un parāda metodes un komandas skata stāvokļa pārvaldīšanai un modeļa manipulēšanai.

Kā MVVM skats un skata modelis sazinās? Nu, skats un skata modelis MVVM sazinās, izmantojot metodes, īpašības un notikumus. Divvirzienu datu sasaiste vai divvirzienu datu sasaiste starp skatu un skata modeli nodrošina, ka skata modeļa modeļi un īpašības ir sinhronizēti ar skatu. MVVM dizaina modelis ir labi piemērots lietojumprogrammām, kurām nepieciešams atbalsts divvirzienu datu sasaistei.

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