Rozdiel medzi MVVM a MVP

Účelom vývoja softvéru je vytvárať riešenia, ktoré riešia potreby a problémy používateľov a podnikov. Na dosiahnutie tohto cieľa, rôzne technológie a vzory architektúry, ako sú Model-View-ViewModel (MVVM) a Model-View-Presenter (MVP) sú použité.

Ako pri všetkom, čo sa vyrába, prvým krokom je fáza plánovania a navrhovania. Proces navrhovania softvéru môže byť špecifikáciou založenou na preferovanom technologickom nástroji a môže zahŕňať všetky činnosti od koncepcie - po - plánovanie - po - implementáciu - až po aktualizácie a úpravy..

Pokrýva architektonický dizajn na nízkej a vysokej úrovni založený na vybraných architektonických vzoroch a mapuje opakovane použiteľné riešenia pomocou návrhových vzorov..

Štruktúra softvérovej aplikácie

Softvérová architektúra definuje štruktúru aplikácie, ktorá spĺňa technické, prevádzkové a užívateľské požiadavky a týka sa spôsobu organizácie a správy kódu.

Rozhodovanie o architektúre softvérovej aplikácie je rozhodujúce, pretože nejde o ľahkú, meniteľnú súčasť už vyvinutej aplikácie; preto musí byť o architektonickej štruktúre rozhodnuté pred začatím akéhokoľvek programovania.

Architektonické vzory sa trochu líšia od vzorov dizajnov, pretože ich rozsah je oveľa širší tým, že sa zameriava na viac technických problémov, ako sú výkonnosť hardvéru a obmedzenia a vysoká dostupnosť. Príklady rôznych vzorov architektúry sú MVC, MVVM a MVP.

Na druhej strane návrhové vzory sú formalizované osvedčené postupy, ktoré uľahčujú opakovane použiteľný objektovo orientovaný vývoj a ktoré sa ľahšie udržiavajú a menia ako architektúra aplikácie.. 

Vzory architektúry

Ovládač zobrazenia modelu (MVC) bol jedným z prvých architektonických vzorov vyvinutých pre webové aplikácie, ktorý si získal popularitu od polovice do konca deväťdesiatych rokov, najmä v komunite Java.

Novšie rámce, napríklad Django pre Python a Rails (Ruby on Rails), sa silne zameriavajú na rýchle nasadenie, a preto MVC preberá trhový podiel ako veľkú príťažlivosť architektonických vzorov..

Vývoj používateľského rozhrania tradične obsahoval veľa kódu na zvládnutie komplikovanej logiky, takže architektonické vzory boli navrhnuté tak, aby znížili kód na úrovni používateľského rozhrania (UI), čím sa stal „čistejším“ a spravovateľnejším..

Takže so vzorom MVC sa webová aplikácia skladá z

  • Model (Data)
  • vyhliadka (rozhranie na prezeranie a manipuláciu s údajmi)
  • kontrolór (operácie a činnosti vykonané na údajoch)

Model spracováva údaje a obchodnú logiku a existuje žiadny závislosti medzi Model a kontrolór alebo vyhliadka.

vyhliadka prezentuje údaje užívateľovi v podporovanom formáte a požadovanom rozložení a kedy kontrolór prijíma žiadosti používateľov (na načítanie údajov), volá príslušné zdroje potrebné na dokončenie žiadosti.

Použime tento vzor pri budovaní internetového kníhkupectva.

Používatelia môžu vyhľadávať, prezerať, registrovať a nakupovať knihy, ako aj spravovať svoje profily a zoznamy kníh. Keď používateľ klikne na kategóriu SCI-FI, všetky súvisiace knihy by sa mali zobraziť ako dostupné.

radiče spracovávať akcie, ktoré spravujú knihy (zoznam, pridávanie, prezeranie atď.). Môže byť viac radiče s jedným hlavným kontrolór „smerovanie premávky“.

Pre tento príklad, kontrolór sa nazýva controller_books.php a Model (napr. model_books.php) spracováva údaje a logiku súvisiacu s knihami.

Nakoniec iné Názory ako napríklad pri pridávaní kníh do online košíka alebo pri prezeraní detailov knihy s obrázkami a recenziami.

controller_books.php dostane akciu (požiadavku užívateľa) z hlavnej kontrolór (napr. index.php). controller_books.php analyzuje žiadosť a volá model_books.php (údaje) na vrátenie zoznamu kníh SCI-FI.

Zodpovednosť Model je poskytnúť tieto informácie pomocou akejkoľvek použitej logiky (pomocou vyhľadávacích filtrov). kontrolór potom vezme informácie a odovzdá ich príslušným vyhliadka (zobrazenie vyhľadávania, zobrazenie tlače, zobrazenie podrobností atď.) a informácie sú prezentované (prostredníctvom vyhliadka) používateľovi, ktorý žiadosť inicioval.

Toto sú základy vzoru MVC, ktorý vyvinul reprodukčné variácie vzorov architektúry, ako sú Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Hierarchical-Model-View-Controller (HMVC), a adaptér na zobrazenie modelu (MVA) atď.

Vzor MVP

Model-View-Presenter (MVP)

Vzor MVP už nejakú dobu existuje a je variantom MVC. Bol navrhnutý špeciálne pre automatizáciu testov, kde cieľom bolo zvýšiť množstvo kódu, ktorý je možné testovať pomocou automatizácie, a vzor rieši niektoré problémy s prezentačnou vrstvou a izoluje obchodnú logiku od používateľského rozhrania..

Na obrazovke je zobrazenie, údaje, ktoré sa zobrazujú, sú model a moderátor ich navzájom spojí.

MVP obsahuje tieto komponenty so samostatnou zodpovednosťou:

  • Model (definuje údaje, ktoré sa majú zobraziť)
  • vyhliadka (zobrazí údaje z modelu a nasmeruje požiadavky používateľov na prezentujúceho).
  • Moderátor (interaguje medzi zobrazením a modelom a spája ich dohromady)

vyhliadka (webová stránka) zobrazuje a spravuje ovládacie prvky stránky tak, že udalosti (požiadavky používateľa) preposiela na internet Moderátor ktoré sa začali v roku 2006 vyhliadka.

Moderátor reaguje na tieto udalosti čítaním a aktualizáciou Model zmeniť vyhliadka a teda aj Presenter je zodpovednosť je zaväzovať Model a vyhliadka.

Po pohľade na MVC a MVP Ak sú tieto modely spoločné, majú za každú zložku oddelené zodpovednosti a podporujú oddelenie medzi internetom vyhliadka (UI) a Model (Data). Významné rozdiely medzi týmito modelmi sú zjavnejšie v spôsobe, akým sa tieto vzory implementujú.

MVP môže byť zložitým vzorom na implementáciu pokročilých riešení, ale určite bude mať veľké výhody, ak bude implementovaný ako dobre navrhnuté riešenie, hoci nemusí byť nevyhnutne vhodnou voľbou pre jednoduché riešenia..

Vzor MVVM

Model-View-ViewModel (MVVM)

MVVM vzor bol špeciálne navrhnutý pre platformy Windows Presentation Foundation (WPF) a Microsoft Silverlight a dá sa použiť na všetkých XAML [i] plošiny.

WPF je systém Microsoft, ktorý poskytuje používateľské rozhrania v programoch založených na systéme Windows a bol prvýkrát vydaný v rozhraní .NET Framework 3.0.

MVVM bol rafinovaný z MVC av tomto vzore, vyhliadka je aktívny pri správaní, udalostiach a viazaní údajov a vyhliadka synchronizuje s ViewModel (ktorá umožňuje oddelenie prezentácie a odhaľuje metódy a príkazy na správu a manipuláciu s internetom Model.

MVVM obsahuje tri základné komponenty:

  • Model (predstavuje údaje s overením a obchodnou logikou)
  • vyhliadka (Pohľad je zodpovedný za definovanie štruktúry, rozloženia a vzhľadu toho, čo vidí užívateľ na obrazovke. V ideálnom prípade je pohľad definovaný čisto s XAML, s obmedzeným kódovým pozadím, ktorý neobsahuje obchodnú logiku. väzba medzi vyhliadka a ViewModel na zobrazenie tabuliek synchronizujúcich Model a ViewModel s Pohľadom)
  • ViewModel (Oddeľuje pohľad od modelu a odhaľuje metódy a príkazy na manipuláciu s údajmi (model).

vyhliadka prijíma dáta z internetu ViewModel (prostredníctvom viazania údajov a metód) a za behu, vyhliadka sa zmení pri reakcii na udalosti v ViewModel.

ViewModel sprostredkováva medzi vyhliadka a Model a spracováva vyhliadka logika. Interaguje s Model - prevzatie údajov z internetu Model a predstaviť ho vyhliadka zobraziť.

Všetky tieto komponenty sú navzájom oddelené, čo umožňuje väčšiu flexibilitu pri samostatnej práci na nich, izoláciu testovania jednotiek a ich výmenu bez toho, aby to ovplyvnilo akýkoľvek iný komponent..

Táto štruktúra umožňuje Model a ďalšie komponenty sa vyvíjajú nezávisle, čo vývojárom umožňuje súčasne pracovať na rôznych aspektoch riešenia. Napríklad, keď dizajnéri pracujú na vyhliadka, jednoducho generujú vzorky údajov bez potreby prístupu k iným komponentom. Toto uľahčuje ľahkú redizajn používateľského rozhrania ako vyhliadka je implementovaný v XAML.

Ako už bolo spomenuté vyššie MVP, jednoduché riešenia by nevyžadovali architektúru a návrhové vzory, napríklad „Ahoj svet!“ je príliš jednoduchý na to, aby sledoval akýkoľvek vzorec; avšak po zavedení ďalších funkcií, funkcií a komponentov sa zvyšuje zložitosť aplikácie a zvyšuje sa aj množstvo kódu, ktorý je potrebné spravovať.

V súhrne

Od začiatku vývoja užívateľského rozhrania sú čoraz populárnejšie návrhové vzory, ktoré uľahčujú vývojový proces, škálovateľnosť aplikácií a uľahčuje testovanie..

Ilustrovaný rozdiel medzi vzormi MVP a MVVM:

  • V oboch MVP a MVVM, vyhliadka je vstupným bodom aplikácie
  • v MVP, existuje medzi jednotlivými mapami vyhliadka a Moderátor, kde v MVVM, vzťah je jeden-k-veľa medzi vyhliadka a ViewModel.
  • MVP sa používa predovšetkým pre aplikácie Windows Forms a Windows Phone a Windows MVVM je určený pre Silverlight, WPF, Knockout / AngularJS atď.