Különbség az MVVM és az MVP között A különbség

Anonim

A szoftverfejlesztés célja olyan megoldások kidolgozása, amelyek a felhasználók és a vállalkozások igényeit és problémáit kezelik. Ennek elérése érdekében különböző technológiákat és architektúra-mintákat használnak, mint a Model-View-ViewModel (MVVM) és Model-View-Presenter (MVP) .

Mint minden gyártott terméknél, az első lépés a tervezési és tervezési szakasz. A szoftvertervezési folyamat lehet az előnyben részesített technológiai eszközkészleten alapuló specifikáció, és magában foglalhatja az összes tevékenységet a tervezéstől kezdve a megvalósításig, a frissítésig és a módosításokig.

Az alacsony szintű és magas szintű építészeti tervezést a kiválasztott architektúra-mintákon alapul, és a tervezési minták felhasználásával újrahasznosítható megoldásokat térképez fel.

Szoftveralkalmazásszerkezet

A szoftverarchitektúra meghatározza az alkalmazás struktúráját, amely megfelel a technikai, működési és felhasználói követelményeknek, és utal a kód szervezésére és kezelésére.

A szoftveralkalmazás architektúrájának eldöntése kritikus fontosságú, mivel nem egy egyszerű, megváltoztatható része a már kifejlesztett alkalmazásnak; ezért az építészeti mintát el kell dönteni a programozás megkezdése előtt.

Az építészeti minták némiképp eltérnek a tervezési mintáktól, mivel hatókörük sokkal szélesebb, ha több technikai kérdést, például hardver teljesítményt és korlátozásokat, valamint magas rendelkezésre állást igényel. A különböző architektúra-minták példái az MVC, az MVVM és az MVP.

Másrészről a tervezési minták olyan formalizált bevált gyakorlatok, amelyek elősegítik az újrahasználható objektumorientált fejlesztéseket, és könnyebben karbantarthatók és megváltoztathatók, mint egy alkalmazás architektúrája.

Építészeti minták

A modellnézet vezérlő (MVC) az internetes alkalmazások számára kifejlesztett első építészeti minták egyike volt, a népszerűség a kilencvenes évek közepétől a kilencvenes évek végéig, különösen a Java közösség számára.

Az újabb keretrendszerek, mint a Django a Python és a Rails (Ruby on Rails) esetében, nagy hangsúlyt fektetnek a gyors telepítésre, ezért az MVC az építészeti minták nagy vonzerejét veszi fel piaci részesedésként.

Hagyományosan a felhasználói felület fejlesztése sok kódot tartalmazott a bonyolult logika kezelésére, így az architektúra-mintákat úgy tervezték, hogy csökkentse a kódot a felhasználói felület (UI) szintjén, így tisztabbá és kezelhetőbbé tenné.

Tehát az MVC minta szerint egy webes alkalmazás

  • Model (data)
  • View (adatbeviteli és kezelői felület)
  • Controller

A Modell kezeli az adatokat és az üzleti logikát, és a Model és Controller függőségek nem vagy Nézet .

A Nézet bemutatja az adatokat a felhasználónak a támogatott formátumban és a szükséges elrendezésben, és amikor a Vezérlő felhasználói kéréseket fogad (adatok lekéréséhez) a kérés teljesítéséhez.

Használjuk ezt a mintát egy online könyvesbolt készítéséhez.

A felhasználók kereshetnek, tekinthetnek meg, regisztrálhatnak és vásárolhatnak könyveket, valamint kezelhetik profiljaikat és könyvlistáikat. Amikor egy felhasználó a SCI-FI kategóriára kattint, az összes kapcsolódó könyvnek elérhetőnek kell lennie.

A Vezérlők kezeli azokat a műveleteket, amelyek kezelik a könyveket (lista, hozzáadás, nézet stb.). Több Vezérlõ egy fõ Vezérlõ "forgalom irányítása" lehet.

Ehhez a példához a Vezérlő nevű vezérlő könyvtár. a php és a Model (például model_books. php) kezeli a könyvekkel kapcsolatos adatokat és logikát.

Végül, különböző Nézetek lesz szükség, mint amikor könyveket adunk az online kocsihoz, vagy megtekinthetjük a könyv részleteit képekkel és véleményekkel.

A controller_books. php fogadja a műveletet (felhasználói kérelem) a vezérlő (például index php ) főtől. A controller_books. php elemzi a kérést, és felhívja a modellkönyveket. php (az adatok), hogy visszaadja a SCI-FI könyvek listáját.

A Modell felelőssége az, hogy ezt az információt felhasználja bármelyik alkalmazott logikával (keresési szűrők használatával). A Vezérlő ezután átveszi az információkat, és átadja a megfelelő Nézet (keresési nézet, nyomtatási nézet, részletes nézet stb.) És megjeleníti az információkat (a Nézet >) a felhasználónak, aki kezdeményezte a kérést. Ez az alapja az MVC mintának, amely az architektúra-minták ívási variációinak kialakulását eredményezte, mint például a Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Hierarchikus-Model-View-Controller

MVP Pattern

Model-View-Presenter (MVP)

A

MVP mintázat már régóta működik, és egy változata az MVC-nek. Ezt kifejezetten a tesztautomatizáláshoz tervezték, ahol a cél az volt, hogy növelje az automatizálással tesztelhető kód mennyiségét, és a minta foglalkozik néhány problémával a megjelenítési réteggel, elszigetelve az üzleti logikát az UI-ból. A képernyő a Nézet, a megjelenített adatok a Modell, a Presenter pedig kettőt összeköt.

MVP

a következő összetevőket tartalmazza: Model

  • (meghatározza a megjelenítendő adatokat) Nézet
  • (megjeleníti a Modell adatait, Bemutató). Előadó
  • (együttműködik a nézet és a modell között, és összekapcsolja őket) A

Nézet (weboldal) az oldalirányításokat jeleníti meg és kezeli az események (felhasználói kérelmek) Előadó , amelyek a Nézet -ben kezdődtek. A

Előadó a Modell megváltoztatásához és a Nézet megváltoztatásához válaszol ezen eseményekre, ezért a Előadó felelőssége a Modell és nézet összerendeléséhez. Miután

MVC és MVP mintákra nézett, az összetettségnek mindegyike különálló felelősséggel tartozik mindegyik összetevő számára, és elősegíti a View (UI) és a Model (data). Az ilyen minták közötti jelentős különbségek nyilvánvalóbbak a minták végrehajtásának módjában. Az MVP

összetett mintát jelenthet a fejlett megoldások megvalósításához, de mindenképpen nagy előnyökkel jár, ha jól kivitelezett megoldásként működik, bár nem feltétlenül a megfelelő megoldás az egyszerű megoldások számára. MVVM mintázat

Model-View-ViewModel (MVVM)

A

MVVM minta kifejezetten a Windows Presentation Foundation (WPF) és a Microsoft Silverlight platformokra lett tervezve. minden XAML [i] platformon használható. A WPF egy olyan Microsoft rendszer, amely felhasználói felületeket hoz létre Windows alapú programokban, és először megjelent a.NET Framework 3. 0 verzióban.

Az MVVM

finomították az MVC a nézet aktív a viselkedéssel, eseményekkel és adatmegkötéssel, és a nézet szinkronizálódik a ViewModel (amely lehetővé teszi a prezentáció elválasztását és a és a Modell . MVVM

kezelésére és manipulálására szolgáló parancsok három fő összetevőből állnak: Modell

  • (az adatokat érvényesítő és üzleti logikával ábrázolja) Nézet > (A nézet felelős a képernyőn megjelenő képek felépítésének, elrendezésének és megjelenésének meghatározásáért. Ideális esetben a nézetet kizárólag az XAML segítségével határozzák meg, korlátozott kóddal, amely nem tartalmaz üzleti logikát. - a
  • nézet és a ViewModel között a képek és a ViewModel szinkronizálásához szükséges nézetek megjelenítése a nézettel) ViewModel e Modell, és expozíciós módokat és parancsokat ad az adatok manipulálásához (Model). A
  • View adatokat a

ViewModel (adat-összerendelés és módszerek) adják meg, és a futásidő alatt a Nézet a ViewModel . A ViewModel közvetíti a

Nézet és Modell között, és kezeli a Nézet logikát. A Modell - a Modell adatainak bevitelével és a Nézet megjelenítésével jelenik meg. Ezek az összetevők egymástól függetlenek, így nagyobb rugalmasságot biztosítanak önálló munkavégzésre, elkülönítik az egységek tesztelését és kicserélik őket, anélkül, hogy bármilyen más összetevőt érintene. Ez a struktúra lehetővé teszi a Model

és egyéb összetevők önálló fejlesztését, lehetővé téve a fejlesztők számára, hogy a megoldás különböző szempontjait egyidejűleg dolgozzák ki. Például, ha a tervezők a

View -en dolgoznak, egyszerűen csak adatmintákat hoznak létre anélkül, hogy hozzáférnének a többi összetevőhöz. Ez megkönnyíti a felhasználói felület egyszerű újratervezését, mivel a Nézet XAML-ban kerül végrehajtásra. Amint azt a MVP előtt említettük, az egyszerű megoldásokra nem lenne szükség építészeti és tervezési mintákra, mint például a "Hello World!"Túl alapos ahhoz, hogy követni tudjuk a mintát; azonban, mivel több funkciót, funkciót és összetevőt vezetnek be, az alkalmazás bonyolultsága nő, és így a kezelni kívánt kód mennyiségét is.

Összefoglaló A felhasználói felület fejlesztésének kezdete óta a tervezési minták egyre népszerűbbek a fejlesztési folyamat megkönnyítése, az alkalmazások skálázhatósága és a könnyebb tesztelés megkönnyítése érdekében. Illusztrált különbség az MVP és az MVVM minták között:

mind

MVP

és

  • MVVM esetében a nézet az alkalmazás > A MVP mappában a View
  • és a Előadó között van egy-egy leképezés, ahol MVVM -mon-sok -hoz a Nézet és ViewModel között. MVP elsősorban a Windows Forms és a Windows Phone alkalmazásokhoz, és a MVVM Silverlight, WPF, Knockout / AngularJS stb. Számára készült.