Starpība starp MVVM un MVP

Programmatūras izstrādes mērķis ir radīt risinājumus, kas risina lietotāju un uzņēmumu vajadzības un problēmas. Lai to sasniegtu, patīk dažādas tehnoloģijas un arhitektūras modeļi Model-View-ViewModel (MVVM) un Modelis-skats-prezentētājs (MVP) tiek izmantoti.

Kā jau ražošanā, pirmais solis ir plānošanas un projektēšanas posms. Programmatūras projektēšanas process var būt specifikācija, kuras pamatā ir vēlamais tehnoloģiju rīku komplekts, un tas var ietvert visas darbības no koncepcijas izstrādes līdz plānošanai - ieviešanai līdz atjauninājumiem un modifikācijām.

Tas aptver zema un augsta līmeņa arhitektūras dizainu, pamatojoties uz izvēlētiem arhitektūras modeļiem, un kartē izmanto atkārtoti izmantojamus risinājumus, izmantojot dizaina modeļus.

Programmatūras lietojumprogrammu struktūra

Programmatūras arhitektūra definē lietojumprogrammas struktūru, kas atbilst tehniskajām, darbības un lietotāju prasībām, un norāda uz to, kā kods tiek organizēts un pārvaldīts.

Izlemt par lietojumprogrammas arhitektūru ir kritiski, jo tā nav viegla, maināma jau izstrādāta lietojumprogrammas daļa; tāpēc pirms jebkādas programmēšanas sākuma ir jāizlemj par arhitektūras modeli.

Arhitektūras modeļi nedaudz atšķiras no dizaina modeļiem, jo ​​to darbības joma ir daudz plašāka, pievēršoties tehniskākiem jautājumiem, piemēram, aparatūras veiktspējai un ierobežojumiem, kā arī augstajai pieejamībai. Dažādu arhitektūras modeļu piemēri ir MVC, MVVM un MVP.

No otras puses, dizaina paraugi ir formalizēta paraugprakse, kas atvieglo atkārtoti orientētu uz objektu orientētu attīstību un ir vieglāk uzturējama un maināma nekā lietojumprogrammas arhitektūra. 

Arhitektūras paraugi

Modeļa skata kontrolieris (MVC) bija viens no pirmajiem tīmekļa lietojumprogrammām izstrādātajiem arhitektūras modeļiem, kas ieguva popularitāti no deviņdesmito gadu vidus līdz beigām, īpaši Java kopienā.

Jaunākajos ietvaros, piemēram, Django for Python un Rails (Ruby on Rails), liela uzmanība tiek pievērsta ātrai izvēršanai, tāpēc MVC uzņemas tirgus daļu kā lielo pievilcību arhitektūras modeļos..

Tradicionāli lietotāja saskarnes izstrādē bija daudz koda sarežģītas loģikas apstrādei, tāpēc arhitektūras modeļi tika izstrādāti, lai samazinātu kodu lietotāja saskarnes (UI) līmenī, padarot to “tīrāku” un pārvaldāmāku.

Tātad, izmantojot MVC modeli, tiek izveidota tīmekļa lietojumprogramma

  • Modelis (dati)
  • Skats (interfeiss datu apskatīšanai un manipulēšanai)
  • Kontrolieris (ar datiem veiktās operācijas un darbības)

Modelis apstrādā datus un biznesa loģiku, un ir atkarības starp Modelis un Kontrolieris vai Skats.

Skats sniedz datus lietotājam atbalstītajā formātā un vajadzīgajā izkārtojumā, un kad Kontrolieris saņem lietotāju pieprasījumus (lai iegūtu datus), tas izsauc attiecīgos resursus, kas nepieciešami pieprasījuma aizpildīšanai.

Piemērosim šo modeli tiešsaistes grāmatu veikala izveidošanai.

Lietotāji var meklēt, apskatīt, reģistrēt un iegādāties grāmatas, kā arī pārvaldīt savus profilus un grāmatu sarakstus. Kad lietotājs noklikšķina uz SCI-FI kategorijas, visām saistītajām grāmatām vajadzētu parādīties pēc pieejamības.

Kontrolieri veikt darbības, kas pārvalda grāmatas (uzskaitīt, pievienot, skatīt utt.) Var būt vairākas Kontrolieri ar vienu galveno Kontrolieris 'vadot satiksmi'.

Šajā piemērā Kontrolieris tiek nosaukts controller_books.php un Modelis (piemēram, model_books.php) apstrādā ar grāmatām saistītos datus un loģiku.

Visbeidzot, atšķirīgi Skati būs nepieciešami, piemēram, pievienojot grāmatas tiešsaistes grozam vai apskatot grāmatas informāciju ar attēliem un pārskatiem.

kontrolieris_grāmatas.php saņem darbību (lietotāja pieprasījumu) no galvenā Kontrolieris (piemēram,. indekss.php). kontrolieris_grāmatas.php analizē pieprasījumu un piezvana modelis_grāmatas.php (dati), lai atgrieztos SCI-FI grāmatu sarakstu.

Atbildība Modelis ir sniegt šo informāciju, izmantojot jebkuru loģiku, kas tika piemērota (izmantojot meklēšanas filtrus). Kontrolieris pēc tam ņem informāciju un nodod to attiecīgajam Skats (meklēšanas skats, drukas skats, detaļas skats utt.) un informācija tiek parādīta (izmantojot Skats) lietotājam, kurš iniciēja pieprasījumu.

Tas ir MVC modeļa pamati, kurā ir attīstījušās nārstojošās arhitektūras modeļu variācijas, piemēram, Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Hierarchical-Model-View-Controller (HMVC). un modeļa skata-adaptera (MVA) utt.

MVP raksts

Modelis-skats-prezentētājs (MVP)

MVP modelis ir bijis kādu laiku un ir MVC variants. Tas tika izstrādāts speciāli testa automatizācijai, kura mērķis bija palielināt koda daudzumu, kuru var testēt, izmantojot automatizāciju, un raksts risina dažas problēmas ar prezentācijas slāni, izolējot biznesa loģiku no lietotāja saskarnes..

Ekrāns ir skats, tajā attēlotie dati ir modelis, un prezentētājs tos savieno kopā.

MVP sastāv no šādām sastāvdaļām ar atsevišķiem pienākumiem:

  • Modelis (definē parādāmos datus)
  • Skats (parāda datus no modeļa un novirza lietotāju pieprasījumus uz prezentētāju).
  • Prezentētājs (mijiedarbojas starp skatu un modeli un saliek tos kopā)

Skats (Web lapa) parāda un pārvalda lapas vadīklas, pārsūtot notikumus (lietotāju pieprasījumus) uz Prezentētājs kas tika ierosināti Skats.

Prezentētājs reaģē uz šiem notikumiem, nolasot un atjauninot Modelis mainīt Skats un tāpēc Prezentētāja atbildība ir saistoša Modelis un Skats.

Pēc apskatīšanas MVC un MVP modeļiem, kopīgumam ir atsevišķi pienākumi par katru sastāvdaļu, un tie veicina atšķirību starp Skats (UI) un Modelis (dati). Būtiskas atšķirības starp šiem modeļiem vairāk izpaužas to ieviešanā.

MVP var būt sarežģīts risinājums progresīvu risinājumu ieviešanai, taču, protams, tam ir lielas priekšrocības, ja tas tiek ieviests kā labi izstrādāts risinājums, lai arī tas nebūt nav piemērota izvēle vienkāršiem risinājumiem.

MVVM raksts

Model-View-ViewModel (MVVM)

MVVM raksts tika īpaši izstrādāts Windows Presentation Foundation (WPF) un Microsoft Silverlight platformām, un to var izmantot visās XAML [i] platformas.

WPF ir Microsoft sistēma, kas nodrošina lietotāja saskarnes Windows bāzētās programmās, un tā pirmo reizi tika izlaista .NET Framework 3.0.

MVVM tika attīrīts no MVC un šajā modelī Skats ir aktīvs ar uzvedību, notikumiem un datu saistīšanu, un Skats sinhronizējas ar ViewModel (kas ļauj atdalīt prezentāciju un pakļauj metodes un komandas, lai pārvaldītu un manipulētu ar Modelis.

MVVM sastāv no trim galvenajām sastāvdaļām:

  • Modelis (attēlo datus ar validāciju un biznesa loģiku)
  • Skats (Skats ir atbildīgs par struktūras, izkārtojuma un izskata noteikšanu tam, ko lietotājs redz uz ekrāna. Ideālā gadījumā skats tiek definēts tikai ar XAML, ar ierobežotu kodu aiz muguras, kas nesatur biznesa loģiku. saistošs starp Skats un ViewModel demonstrējamiem elementiem, kas sinhronizē modeli un skata modeli ar skatu)
  • ViewModel (atdala skatu no modeļa un pakļauj metodes un komandas manipulēšanai ar datiem (modelis).

Skats saņem datus no ViewModel (izmantojot datu iesiešanu un metodes) un izpildlaika laikā Skats mainīsies, reaģējot uz notikumiem ViewModel.

ViewModel starpnieks starp Skats un Modelis un apstrādā Skats loģika. Tas mijiedarbojas ar Modelis - ņemot datus no Modelis un pasniedzot to Skats parādīt.

Visi šie komponenti ir atdalīti viens no otra, ļaujot elastīgāk strādāt pie tiem neatkarīgi, izolēt vienību testēšanu un tos nomainīt, neietekmējot nevienu citu sastāvdaļu.

Šī struktūra ļauj Modelis un citi komponenti, kas attīstās neatkarīgi, ļaujot izstrādātājiem vienlaikus strādāt pie dažādiem risinājuma aspektiem. Piemēram, kur dizaineri strādā Skats, viņi vienkārši ģenerē datu paraugus, nepieprasa piekļuvi pārējiem komponentiem. Tas atvieglo lietotāja interfeisa vieglu pārveidi kā Skats tiek ieviests XAML.

Kā minēts iepriekš ar MVP, vienkāršiem risinājumiem nav nepieciešama arhitektūra un dizaina paraugi, piemēram, “Sveika pasaule!” ir pārāk pamata, lai sekotu jebkuram modelim; tomēr, ieviešot vairāk funkciju, funkciju un komponentu, lietojumprogrammas sarežģītība palielinās, tāpat palielinot pārvaldāmā koda daudzumu.

Kopsavilkumā

Kopš lietotāja interfeisa izstrādes sākuma dizaina shēmas kļūst arvien populārākas, lai atvieglotu izstrādes procesu, lietojumprogrammas būtu pielāgojamākas un tas atvieglotu testēšanu.

Ilustrēta atšķirība starp MVP un MVVM modeļiem:

  • Abos MVP un MVVM, Skats ir pieteikuma ieejas punkts
  • Iekšā MVP, ir viens pret vienu kartēšana starp Skats un Prezentētājs, kur iekšā MVVM, attiecības ir savstarpēji saistītas Skats un ViewModel.
  • MVP galvenokārt tiek izmantots Windows formām un Windows Phone lietojumprogrammām un MVVM ir paredzēts Silverlight, WPF, Knockout / AngularJS utt.