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..
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.
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
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
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:
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
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:
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.
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: