Az MVVM és az MVP közötti különbség

A szoftverfejlesztés célja olyan megoldások felépítése, amelyek kezelik a felhasználók és a vállalkozások igényeit és problémáit. Ennek elérése érdekében a különböző technológiák és építészeti minták hasonlóak Model-View-ViewModel (MVVM) és Model-View-Presenter (MVP) használt.

A gyártott termékekhez hasonlóan az első lépés a tervezés és a tervezés. A szoftverfejlesztési folyamat specifikáció lehet az előnyben részesített technológiai eszközkészlet alapján, és magában foglalhatja az összes tevékenységet a koncepciótól a tervezéstől a megvalósításig a frissítésekig és módosításokig.

Lefedi a kiválasztott építészeti mintákon alapuló alacsony és magas szintű építészeti terveket, és tervezési minták alapján feltérképezi az újrafelhasználható megoldásokat..

Szoftver alkalmazás felépítése

A szoftver architektúra meghatározza az alkalmazás szerkezetét, amely megfelel a műszaki, működési és felhasználói követelményeknek, és utal arra, hogy a kód hogyan szerveződött és kezelt.

A szoftveralkalmazás architektúrájának megválasztása kritikus jelentőségű, mivel ez nem egy már kifejlesztett alkalmazás könnyű, megváltoztatható része; ezért az építészeti mintát meg kell határozni a programozás megkezdése előtt.

Az építészeti minták kissé különböznek a tervezési mintáktól, mivel alkalmazási köre sokkal szélesebb, mivel olyan technikai kérdésekkel foglalkozik, mint például a hardver teljesítménye és korlátozásai, valamint a magas rendelkezésre állás. Különböző építészeti mintákra példák az MVC, MVVM és MVP.

Másrészt a tervezési minták formalizált legjobb gyakorlatok, amelyek megkönnyítik az újrafelhasználható objektum-orientált fejlesztést, és könnyebben karbantarthatók és megváltoztathatók, mint egy alkalmazás architektúrája. 

Építészeti minták

Modell nézet vezérlő (MVC) volt az első olyan webes alkalmazások számára kifejlesztett építészeti minták, amelyek a kilencvenes évek közepétől a későbbi időkben egyre népszerűbbek lettek, különösen a Java közösségben.

Az újabb keretek, például a Django for Python és a Rails (Ruby on Rails) nagy hangsúlyt helyeznek a gyors telepítésre, ezért az MVC veszi a piaci részesedést az építészeti minták legnagyobb vonzerejeké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ökkentsék a kódot a felhasználói felület (UI) szintjén, ezáltal „tisztább” és kezelhetőbb legyen..

Tehát az MVC mintázattal egy webes alkalmazás áll

  • Modell (adat)
  • Kilátás (interfész az adatok megtekintéséhez és manipulálásához)
  • Vezérlő (az adatokon végrehajtott műveletek és műveletek)

Az Modell kezeli az adatokat és az üzleti logikát, és vannak nem függőségek a Modell és a Vezérlő vagy Kilátás.

Az Kilátás bemutatja az adatokat a felhasználónak a támogatott formátumban és a szükséges elrendezésben, és mikor Vezérlő felhasználói kéréseket fogad (adatok beolvasása), meghívja a kérés teljesítéséhez szükséges erőforrásokat.

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

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

Az vezérlők kezelje a könyveket kezelő műveleteket (listázás, hozzáadás, nézet stb.) Többféle is lehet vezérlők egy fővel Vezérlő a forgalom irányítása.

Ebben a példában a Vezérlő a következő neve: controller_books.php és a Modell (például a model_books.php) kezeli a könyvekkel kapcsolatos adatokat és logikákat.

Végül, más Nézetek például akkor van szükség, amikor könyveket ad hozzá az online kosárhoz, vagy amikor a könyvet részleteivel képekkel és véleményekkel látja el.

Az controller_books.php megkapja a műveletet (felhasználói kérés) a főtől Vezérlő (például. index.php). Az controller_books.php elemzi a kérelmet, és felhívja a model_books.php (az adatok), hogy visszatérjen a SCI-FI könyvek listájához.

A Modell az információ megadása minden alkalmazott logika felhasználásával (keresési szűrők segítségével). Az Vezérlő ezután átveszi az információt, és továbbítja azt a megfelelőnek Kilátás (keresési nézet, nyomtatási nézet, részlet nézet stb.), és az információ megjelenik (a Kilátás) annak a felhasználónak, aki kezdeményezte a kérelmet.

Ez az alapja az MVC mintának, amely az építészeti minták ívó variációit fejlesztette ki, például a Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Hierarchical-Model-View-Controller (HMVC), és Model-View-Adapter (MVA) stb.

MVP minta

Model-View-Presenter (MVP)

Az MVP mintázat már egy ideje létezik, és az MVC egyik változata. Kifejezetten a tesztelés automatizálására tervezték, ahol a cél az automatizálással tesztelhető kódmennyiség növelése volt, és a minta a prezentációs réteg néhány problémájával foglalkozik, elkülönítve az üzleti logikát a felhasználói felületről..

A képernyő a nézet, a megjelenített adatok a modell, az előadó pedig összekapcsolja a kettőt.

MVP a következő elemekből áll, külön felelősséggel:

  • Modell (meghatározza a megjelenítendő adatokat)
  • Kilátás (megjeleníti a modell adatait, és a felhasználói kéréseket továbbítja az Presenterhez).
  • Bemutató (kölcsönhatásba lép a nézet és a modell között, és összekapcsolja őket)

Az Kilátás (egy weboldal) megjeleníti és kezeli az oldalvezérlőket az események (felhasználói kérések) továbbításával a Bemutató amelyeket a Kilátás.

Az Bemutató válaszol ezekre az eseményekre a Modell megváltoztatni a Kilátás és ezért a Előadói a felelősség a Modell és Kilátás.

Miután megnézte MVC és MVP mintázatokban, a közösségnek mindkét alkotóelemre külön felelőssége van, és elősegítik a Kilátás (UI) és Modell (adat). Ezen minták közötti jelentős különbségek jobban megmutatkoznak a minták végrehajtásának módjában.

MVP lehet, hogy egy komplex mintát hajt végre a fejlett megoldások számára, de természetesen nagy előnyei vannak, ha jól megtervezett megoldásként valósítják meg, bár ez nem feltétlenül jelenti a megfelelő választást az egyszerű megoldásokhoz.

MVVM minta

Model-View-ViewModel (MVVM)

Az MVVM minta kifejezetten a Windows Presentation Foundation (WPF) és a Microsoft Silverlight platformokra tervezték, és mindenki számára használható XAML [i] állványok.

A WPF egy Microsoft rendszer, amely felhasználói felületeket biztosít Windows-alapú programokban, és először a .NET-keretrendszer 3.0 verziójában jelent meg.

MVVM lett finomítva MVC és ebben a mintában a Kilátás aktív magatartással, eseményekkel és adatkötéssel, valamint a Kilátás szinkronizálódik a ViewModel (amely lehetővé teszi a bemutatás elválasztását, és módszereket és parancsokat tesz fel a program kezelésére és manipulálására) Modell.

MVVM három alapelemből áll:

  • Modell (az adatokat érvényesítéssel és üzleti logikával képviseli)
  • Kilátás (A nézet felelős annak meghatározásáért, hogy a felhasználó hogyan látja a képernyőn a szerkezetet, az elrendezést és a megjelenést. Ideális esetben a nézetet pusztán az XAML segítségével határozzuk meg, korlátozott kód mögött, amely nem tartalmazza az üzleti logic.twot adatkezelési módot - kötés a Kilátás és ViewModel a megjelenítendő eszközökre, amelyek szinkronizálják a modellt és a ViewModel képet a nézettel)
  • ViewModel (elválasztja a nézetet a modelltől, és felfedi módszereket és parancsokat az adatok kezelésére (modell).

Az Kilátás adatokat vesz a ViewModel (adatmegkötéssel és módszerekkel), és futási időben a Kilátás megváltozik, amikor a ViewModel.

Az ViewModel közvetíti a Kilátás és Modell és kezeli a Kilátás logika. Kölcsönhatásban áll a Modell - az adatok kivétele a Modell és bemutatjuk a Kilátás megjeleníteni.

Ezeket az alkatrészeket elválasztják egymástól, lehetővé téve a nagyobb rugalmasságot, hogy függetlenül dolgozzanak rajtuk, elkülönítsék az egység tesztelését és kicseréljék őket, anélkül, hogy más komponenseket befolyásolnának..

Ez a szerkezet lehetővé teszi a Modell és más összetevők, hogy egymástól függetlenül fejlődjenek, lehetővé téve a fejlesztőknek, hogy a megoldás különböző szempontjaival párhuzamosan dolgozzanak. Például, ahol a tervezők dolgoznak a Kilátás, egyszerűen adatmintákat állítanak elő anélkül, hogy a többi alkatrészhez kellene hozzáférniük. Ez megkönnyíti a felhasználói felület egyszerű átalakítását Kilátás az XAML-ben van megvalósítva.

Mint korábban említettük MVP, az egyszerű megoldásokhoz nincs szükség építészeti és tervezési mintákra, például a „Hello World!” túl alapvető ahhoz, hogy bármilyen mintát követhessen; mivel azonban több funkciót, funkciót és összetevőt vezetnek be, az alkalmazás bonyolultsága növekszik, és így növekszik a kezelni kívánt kódmennyiség is.

Összefoglalva

A felhasználói felület fejlesztésének kezdete óta a tervezési minták egyre népszerűbbek, hogy megkönnyítsék a fejlesztési folyamatot, az alkalmazások méretezhetőbbek legyenek, és megkönnyítse a tesztelést..

Az MVP és az MVVM minták szemléltetett különbsége:

  • Mindkettőben MVP és MVVM, az Kilátás az alkalmazás belépési pontja
  • Ban ben MVP, van egy-egy leképezés a Kilátás és Bemutató, hol MVVM, a kapcsolat egy a sok között Kilátás és ViewModel.
  • MVP elsősorban Windows Forms és Windows Phone alkalmazásokhoz és MVVM Ajánlott: Silverlight, WPF, Knockout / AngularJS stb.