Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako MVVMcross olajša ločevanje pomislekov v aplikacijah med platformami


Kako MVVMcross olajša ločevanje pomislekov v aplikacijah med platformami


MVVMcross olajša ločevanje pomislekov v aplikacijah med platformami z uvedbo vzorca modela-ogled-pogled (MVVM), ki sam po sebi spodbuja jasno delitev odgovornosti med različnimi sestavnimi deli aplikacije. Evo, kako to dosega MVVMcross:

MVVM Izvedba vzorca

MVVMcross je zgrajen okoli arhitekture MVVM, ki je sestavljena iz treh glavnih komponent:
- Model: predstavlja podatke in poslovno logiko aplikacije. Zajema podatkovne strukture in operacije, ki so neodvisne od uporabniškega vmesnika.
- Pogled: obravnava uporabniški vmesnik in interakcije uporabnikov. Odgovoren je za prikaz podatkov in prejemanje vnosa od uporabnika.
- ViewModel: deluje kot posrednik med modelom in pogledom. Izpostavlja podatke in ukaze, na katere se lahko pogled veže, in učinkovito loči pogled iz modela.

Z ohranitvijo te ločitve MVVMcross zagotavlja, da se vsaka komponenta osredotoči na svojo posebno vlogo brez prekrivajočih se odgovornosti. Na primer, pogled ne bi smel vsebovati poslovne logike, ViewModel pa ne sme neposredno manipulirati z elementi uporabniškega vmesnika.

Knjižnica prenosnih razredov (PCL) za skupno logiko

MVVMcross uporablja prenosno knjižnico razredov (PCL) za namestitev vidnih modelov, modelov in vmesnikov za storitve, specifične za platformo. Ta PCL služi kot temeljni projekt, ki vsebuje skupno poslovno logiko in ravnanje z bazo podatkov. Z ločitvijo poslovne logike v PCL MVVMCross razvijalcem omogoča, da delijo pomemben del kode na različnih platformah, kot so iOS, Android in Windows. Ta pristop ne samo olajša ponovno uporabo kode, ampak tudi zagotavlja, da poslovna logika ostaja dosledna na platformah.

Zavezana in komunikacija podatkov

MVVMcross uporablja vezavo podatkov na poglede na povezave z ustreznimi pogledi. Ta mehanizem omogoča, da se pogled samodejno posodobi, ko se ViewModel spremeni, in obratno. Zavezanost podatkov je ključnega pomena za ohranjanje ločevanja pomislekov, ker omogoča, da se pogled reagira na spremembe v ViewModel, ne da bi bilo treba vedeti podrobnosti o izvajanju poslovne logike.

Poleg tega MVVMcross podpira različne komunikacijske tehnike, kot so ukazi in dogodki, ki še izboljšajo ločitev pomislekov, saj omogočajo, da se pogled sklicuje na dejanja na ViewModel, ne da bi neposredno dostopal do svojega notranjega stanja.

Vbrizgavanje odvisnosti in arhitektura vtičnikov

MVVMcross vključuje vbrizgavanje odvisnosti (DI) in arhitekturo vtičnikov za upravljanje odvisnosti in razširitev zmogljivosti okvira. Vbrizgavanje odvisnosti pomaga zagotoviti, da so komponente ohlapno povezane, kar olajša preizkušanje in vzdrževanje uporabe. Arhitektura vtičnikov razvijalcem omogoča, da dodajajo nove funkcionalnosti, ne da bi spremenili okvir jedra in s tem ohranili čisto ločevanje pomislekov.

Upravljanje življenjskega cikla

MVVMcross ponuja funkcije upravljanja življenjskega cikla za ViewModels, ki so vezane na življenjski cikel pogledov. To pomeni, da je mogoče ViewModele obvestiti, ko se pogled ustvari, pojavi, izgine ali uničuje. Takšno upravljanje življenjskega cikla pomaga pri ohranjanju čiste ločitve pomislekov z zagotavljanjem, da se sredstva pravilno očistijo in da se stanje ViewModela pravilno upravlja.

Če povzamemo, MVVMcross olajša ločevanje pomislekov v Aplikacijah med platformami z uveljavljanjem vzorca MVVM z uporabo PCL za skupno logiko, izvajanje vezave podatkov in vključitev vbrizgavanja odvisnosti in upravljanja življenjskega cikla. Te funkcije skupaj prispevajo k robustni, vzdržni in razširljivi arhitekturi aplikacij.

Navedbe:
[1] https://www.linkedin.com/advice/0/what-best-way-way-sure-separation-concerns-mvvvm-design-csadc
[2] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[3] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[5] https://www.mvvmcross.com/documentation/fundamentals/viewModel-lifecycle
[6] https://www.mvvmcross.com/documentation/getting-started/getting-start
[7] https://www.mvvmcross.com/documentation/fundamentals/data----
[8] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-that-xamarin-doesnt-already
[9] https://github.com/mvvmcross/mvvmcross