Skirtumas tarp MVC ir MVVM

Svetainė yra daugiau nei tai, kas ji atrodo iš išorės. Tiesą sakant, struktūrinis svetainės modelis skiriasi tiek pat, kiek pati svetainė. Svetainė yra sudėtingas daugybės komponentų tinklas, sąveikaujantis tarpusavyje, kad būtų paleista programa. Paimkite, pavyzdžiui, „Facebook“, kuri yra viena iš sudėtingiausių svetainių, kurią naudojame beveik kiekvieną dieną. Eikite į jo pagrindinį puslapį ir pamatysite, kad svetainė vienu metu tvarko beveik keliolika duomenų užklausų, kad užpildytų puslapį daugybe komponentų. Galima lengvai įsivaizduoti, kad komponentų sąveikos tarpusavio logika, norint paleisti tokią programą kaip „Facebook“, gali labai skirtis nuo kitų svetainių. Pagrindinį bet kurios svetainės funkcionalumą apibūdina tai, kaip lengvai naudojama sąsaja su tinkamu modeliu, norint gauti duomenis, kurių siekia žiūrovas. MVC ir MVVM yra du populiarūs dizaino modeliai programinės įrangos kūrimo pasaulyje.

Kas yra MVC?

MVC, sutrumpintai „Model-View-Controller“, yra programų projektavimo modelis, paprastai naudojamas kuriant šiuolaikiškas vartotojo sąsajas. MVC modelis yra šiuolaikinės į objektą orientuotos programinės įrangos plėtros pagrindas, nes jis atsirado iš objektų orientuoto projektavimo bendruomenės. Iš pradžių jis buvo pavadintas „Thing-Model-View-Editor“ 1979 m., Tačiau vėliau buvo supaprastintas ir pervadintas „Model-View-Controller“. Dažniausiai jis naudojamas kuriant ir plėtojant mobiliąsias ir žiniatinklio programas. Tai padalija programos vartotojo sąsają į tris atskiras dalis: modelį, rodinį ir valdiklį.

Modelis: Modelis nurodo klasių rinkinį, apibūdinantį duomenis, kuriuos planuojate naudoti programoje. Jis apibūdina bendrą duomenų formatą, bet taip pat gali apimti verslo taisykles, konversijas, patvirtinimo logiką ir įvairias kitas funkcijas.

Vaizdas: Vaizdas rodo duomenis, kurie turi būti rodomi iš modelio. Tai nusako, kaip bus rodoma programos vartotojo sąsaja. Priklausomai nuo programos, modelis gali turėti daugybę rodinių. Vaizdo modelis dizaino prasme iš esmės vaizduoja UI komponentus, tokius kaip HTML, „jQuery“ ir pan.

Valdiklis: Valdiklis yra pagrindinis MVC programos elementas, kuris tvarko vartotojo komunikaciją įvykių, bendrojo programos srauto ir konkrečios programos logikos forma. Tada įvykiai paverčiami paslaugų užklausomis ir perduodami modeliui ar vaizdui. Tai yra vienintelis komponentas, per kurį vartotojas sąveikauja su sistema.

Kas yra MVVM?

„Model-View-ViewModel“ arba „MVVM“ yra populiarus programinės įrangos architektūros modelis, paprastai naudojamas kuriant daugkartinio naudojimo ir lengvai patikrinamas interneto programas. MVVM remiasi MVC modeliu, tačiau tobulina MVC modelį, įvesdamas naują klasę pavadinimu „ViewModel“, kuri tvarko rodinio duomenis. Pagrindinis MVVM modelio tikslas yra tikras atskyrimas tarp modelio ir vaizdo komponentų. Pagrindiniai modelio komponentai yra šie: „Model“, „View“ ir „ViewModel“.

Modelis: Principas išlieka tas pats, kaip ir MVC modelyje. Modelis atspindi verslo logiką ir duomenis bei nurodo, kaip turėtų būti manipuliuojama duomenimis.

Vaizdas: „Peržiūros“ modelis žymi rodomus duomenis, tačiau neatlieka jokių duomenų manipuliavimų. Vaizdas yra toks pat kaip ir MVC, išskyrus tai, kad rodinyje reikia nustatyti duomenų susiejimą, o tai daroma pridedant „ViewModel“ prie rodinio..

„ViewModel“: Tai yra svarbiausias modelio komponentas, nes jis skirtas naudoti duomenų įrišimo funkcijas, o tai iš tikrųjų padeda išlaikyti vaizdą nuo modelio ir tuo pat metu veikia kaip duomenų valdytojas palengvinant ryšį tarp „View“ ir „Model“ komponentų.

Skirtumas tarp MVC ir MVVM

Raštas

- „Model-View-Controller“ (MVC) yra programų projektavimo modelis, paprastai naudojamas kuriant šiuolaikiškas vartotojo sąsajas. Tai padalija programos vartotojo sąsają į tris atskiras dalis: modelį, rodinį ir valdiklį. Kita vertus, „Model-View-ViewModel“ (MVVM) yra modernus MVC modelio variantas, paprastai naudojamas kuriant daugkartinio naudojimo ir lengvai išbandomas interneto programas. Pagrindiniai MVVM modelio komponentai yra „Model“, „View“ ir „ViewModel“.

Duomenų įpareigojimas

- Pagrindinė savybė, skirianti MVVM nuo kitų programinės įrangos projektavimo modelių, yra duomenų įrišimas, o tai yra tiesiog mechanizmas, jungiantis vartotojo sąsają su verslo logika. Tai yra pagrindinė technologija, jungianti vaizdus su jų „ViewModels“ ir užtikrinanti, kad modeliai ir ypatybės būtų sinchronizuoti su vaizdu „ViewModel“. Tai pašalina poreikį visą modelį parodyti vaizdu.

Valdiklis

- Pagrindinis skirtumas tarp šių dviejų architektūrinių modelių yra tas, kad MVC valdytojas yra atsakingas už ryšio tarp modelio ir rodinio valdymą naudojant įvykius, tuo tarpu sistema daro visą sunkų MVVM kėlimą naudodama funkciją, vadinamą duomenų įrišimu. „ViewModel“, esantis MVVM, padeda išlaikyti vaizdą nuo modelio ir tuo pat metu veikia kaip valdiklis palengvinant ryšį tarp „View“ ir „Model“ komponentų..

MVC ir MVVM: palyginimo diagrama

Santrauka

Ir MVC, ir MVVM yra MVC modelio išvestinės, tačiau MVVM yra modernus MVC modelio variantas, pristatantis naują klasę, vadinamą „ViewModel“, kuri tvarko rodinio specifinius duomenis. Pagrindinis MVVM modelio tikslas yra tikras atskyrimas tarp modelio ir vaizdo komponentų. MVC valdytojas yra atsakingas už ryšio tarp modelio ir rodinio valdymą. Tačiau MVVM, „ViewModel“ padeda išlaikyti vaizdą nuo modelio, taip pat veikia kaip valdiklis, palengvinantis ryšį tarp komponentų.