MVC, MVP, MVVM: kuru izvēlēties?

MVC, MVP, MVVM: kuru izvēlēties?

Mūsdienu lietojumprogrammām ir nepieciešamas tik dažādas funkcijas, ka to izstrādes process ir kļuvis apjomīgāks un sarežģītāks. Lai palīdzētu, varat izmantot arhitektūras dizaina modeli. Tie atbalsta lietojumprogrammu izveidi, kuras ir viegli pārbaudīt un uzturēt.





Trīs populārākie dizaina modeļi ir MVC, MVP un MVVM. MVC apzīmē modeli, skatu un kontrolieri, savukārt MVP apzīmē modeli, skatu un prezentētāju, bet MVVM apzīmē modeli, skatu un skata modeli.





Windows 10 rūpnīcas atiestatīšana no BIOS

Arhitektūras un dizaina modeļi

Arhitektūras modelis

Arhitektūras modelis precizē un definē dažus būtiskus programmatūras arhitektūras komponentus. Pat ja arhitektūras raksts sniedz sistēmas tēlu, tā nav arhitektūra . Faktiski tas ir vispārīgs un atkārtoti lietojams risinājums bieži sastopamai problēmai programmatūras arhitektūrā noteiktā kontekstā.





Dizaina raksts

Dizaina modelis ir formalizēta paraugprakse, ko varat izmantot, lai atrisinātu izplatītas problēmas, izstrādājot lietojumprogrammu vai sistēmu.

Atšķirība starp arhitektūras un dizaina modeli

Sāksim ar vispārpieņemto terminu — modeli. Programmatūrā modelis ir atkārtots īpašums, kas ļauj sadalīt milzīgu un sarežģītu struktūru mazākos, vienkāršākos komponentos. Varat izmantot šo modeli, lai izstrādātu vispārīgu risinājumu kādai problēmu klasei.



Katrā programmatūras izstrādes līmenī jūs izmantosit dažādus rīkus. Mazākos līmeņos šie rīki ir dizaina modeļi. Arhitektūras modeļi pastāv lielākos līmeņos un programmēšanas paradigmas īstenošanas līmenī.

Kāpēc mums ir nepieciešami arhitektūras dizaina modeļi?

Programmatūras izstrādes laikā varat izmantot arhitektūras dizaina modeļus, lai atrisinātu izplatītas problēmas. Laba arhitektūra var arī palīdzēt:





  • Sadaliet sarežģītus uzdevumus vienkāršākos uzdevumos.
  • Samaziniet kļūdas.
  • Izveidojiet pārbaudāmu un uzturējamu kodu.

Taču bez arhitektūras modeļa jums var rasties grūtības uzturēt lietotnes biznesa loģiku.

Modelis, skats, ViewModel, kontrolieris un prezentētājs

Pirms aplūkojat katru modeli, šeit ir norādīti termini, kas tos veido:





  • Modelis saglabā datus un sazinās tieši ar datu bāzi. Modelis ir daļa, kas attēlo jūsu datus un lietojumprogrammu loģiku. Tas nosaka uzņēmējdarbības noteikumus, kas pārvalda datu apstrādi, modifikāciju vai apstrādi.
  • Skatīt parāda modeļa datus un ir atbildīgs par datu attēlojumu lietotāja saskarnē.
  • ViewModel ir ekskluzīvs MVVM modelim. Tas ir skata slāņa abstrakcija un darbojas arī kā modeļa datu iesaiņojums.
  • Kontrolieris ir komponents, kas integrē skatu un modeli.
  • Prezentētājs ir komponents, kas pastāv tikai MVP modelī. Prezentētājs iegūst ievadi no skata komponenta un apstrādā datus ar modeļa palīdzību.

MVC, MVP un MVVM modeļi

Modeļa skata un kontroliera modelis

The MVC arhitektūras modelis bija pirmais, un mūsdienās tas ir populārs tīmekļa lietojumprogrammu jomā. Tas tika ieviests pagājušā gadsimta 70. gados. Šis modelis ļauj izveidot lietojumprogrammu saistībā ar problēmu nošķiršanu (SoC). Tas atvieglo piepūli, kas jums nepieciešams, lai pārbaudītu, uzturētu un attīstītu savu lietojumprogrammu.

MVC modelī modelim nav izpratnes par skatu vai kontrolieri. Modeļa novērotājs saņems brīdinājumu ikreiz, kad tiks veiktas izmaiņas skatā un kontrollerī. Kontrolieris palīdz maršrutēšanas procesam savienot modeli ar attiecīgo skatu.

Dažas no MVC modeļa priekšrocībām ir:

  • Bažu nošķiršana (koncentrētāka).
  • Atvieglo koda testēšanu un pārvaldību.
  • Veicina lietojumprogrammas slāņu atsaisti.
  • Labāka koda organizācija un atkārtota izmantošana.

Lūk, kā darbojas MVC:

  Diagrammas attēls, kas ilustrē MVC darbību

Pateicoties SoC, MVC var samazināt koda lielumu un izveidot labu kodu, kas ir tīrs un pārvaldāms.

Modeļa skata un prezentētāja modelis

MVP modelim ar MVC ir kopīgi divi komponenti: modelis un skats. Tas aizstāj kontrolieri ar prezentētāju. Prezentētājs — kā norāda tā nosaukums — tiek izmantots, lai kaut ko prezentētu. Tas ļauj vieglāk izsmiet skatu.

MVP prezentētājam ir 'vidējā cilvēka' funkcionalitāte, jo visa prezentācijas loģika tiek virzīta uz to. Skats un prezentētājs MVP ir arī neatkarīgi viens no otra un mijiedarbojas, izmantojot saskarni.

Tālāk ir sniegts piemērs tam, kā darbojas MVP modelis:

  Diagrammas attēls, kas ilustrē MVP darbību

Prezentētājs saņem informāciju no lietotāja, izmantojot skatu. Pēc tam tas apstrādā lietotāja darbības ar modeļa palīdzību, nododot rezultātus atpakaļ skatam. Prezentētājs sazinās ar skatu, izmantojot saskarnes.

Modelis-skats-skatsModeļa modelis

MVVM ir mūsdienu MVC evolūcija. MVVM galvenais mērķis ir nodrošināt skaidru atdalīšanu starp domēna loģiku un prezentācijas slāni. MVVM atbalsta divvirzienu datu saistīšanu starp skatu un skata modeli.

MVVM modelis ļauj atdalīt koda skatu un modeli. Tas nozīmē, ka, mainoties modelim, skatam tas nav nepieciešams, un otrādi. Izmantojot skata modeli, varat veikt vienības testēšanu un pārbaudīt savu loģisko uzvedību, neiesaistot savu skatījumu.

Šeit ir ilustrācija par to, kā darbojas MVVM:

  Diagrammas attēls, kas parāda, kā darbojas MVVM

Kad izmantot MVC, MVP un MVVM

Tagad, kad esat uzzinājis par katru modeli, uzziniet, kad tos izmantot.

Kad lietot MVC

MVC ir vienkārši problēmu nošķiršanas ieviešana. Ja jūsu lietojumprogrammai ir jānodala dati (modelis), datu sasmalcināšana (kontrolieris) un datu prezentācija (skats), MVC darbosies labi. MVC labi darbojas arī lietojumprogrammā, kurā datu avots un/vai datu prezentācija var mainīties jebkurā laikā.

Kad lietot MVP

Varat izmantot MVP, ja jūsu lietojumprogrammai ir divvirzienu plūsma. Ja lietotāja mijiedarbībai ir nepieciešams kaut kas pieprasīt no modeļa un šī pieprasījuma rezultāts nekavējoties mainīs lietotāja interfeisu, apsveriet iespēju izmantot MVP.

fire hd 10 google play 2018

Kad lietot MVVM

Jūs vēlaties izmantot MVVM, ja:

  • Jums ir jādalās projektā ar dizaineri, un projektēšanas un izstrādes darbi var notikt neatkarīgi.
  • Jūsu risinājumiem ir nepieciešama vienību pārbaude.
  • Jums ir jābūt atkārtoti lietojamiem komponentiem gan jūsu organizācijas projektos, gan starp tiem.
  • Jūs vēlaties lielāku elastību, lai mainītu savus uzskatus, nepārstrādājot citu koda bāzes loģiku.

Kuru modeli izvēlēties?

Galvenais dizaina modeļa izmantošanas iemesls ir sarežģītības samazināšana. To var izdarīt, samazinot vispārējo sarežģītību vai aizstājot nepazīstamo sarežģītību ar pazīstamo. Ja dizaina modelis nevar samazināt sarežģītību nevienā no šiem diviem veidiem, neizmantojiet nevienu no tiem; tas nedos nekādu pievienoto vērtību.

Ja esat patiešām pārliecināts, ka jums vajadzētu izmantot dizaina modeli, mēģiniet izveidot kontrolsarakstu. Pamatojiet to uz šeit redzētajām situācijām un izvēlieties savam projektam vispiemērotāko.