MVVM a MVP

Anonim

Účelem vývoje softwaru je vytvářet řešení, která řeší potřeby a problémy uživatelů a podniků. K tomu je třeba použít různé technologie a architekturu Model-View-ViewModel (MVVM) a Model-View-Presenter (MVP) Jsou používány.

Stejně jako u všech ostatních, které jsou vyráběny, je prvním krokem fáze plánování a návrhu. Proces návrhu softwaru může být specifikace založená na upřednostňovaném technologickém nástroji a může zahrnovat veškerou činnost od koncepce až po plánování až po implementaci až po aktualizace a modifikace.

Zahrnuje architekturu s nízkým a vysokým stupněm architektury, založený na vybraných architektonických vzorcích a mapuje znovu použitelná řešení pomocí návrhových vzorů.

Struktura aplikace softwaru

Architektura softwaru definuje strukturu aplikace, která splňuje technické, provozní a uživatelské požadavky, a odkazuje na organizaci a správu kódu.

Rozhodování o architektuře softwarové aplikace je rozhodující, neboť není snadná, proměnlivá část aplikace, která je již vyvinutá; proto musí být rozhodnuto o architektonickém vzoru před zahájením jakéhokoliv programování.

Architektonické vzory se poněkud liší od návrhových vzorů, protože jejich rozsah je mnohem širší tím, že řeší více technických problémů, jako je výkon a omezení hardwaru a vysoká dostupnost. Příklady různých vzorů architektury jsou MVC, MVVM a MVP.

Na druhou stranu designové vzory jsou formalizované osvědčené postupy, které usnadňují opakovaně použitelný objektově orientovaný vývoj a jsou snadněji udržovány a měněny než architektura aplikace.

Architektonické vzory

Kontrolér modelového pohledu (MVC) byl jedním z prvních architektonických vzorů vyvinutých pro webové aplikace, získal popularitu od poloviny do konce devadesátých let, zejména s komunitou Java.

Novější rámce, jako například Django pro Python a Rails (Ruby on Rails), se silně zaměřují na rychlé nasazení, což je důvod, proč MVC zaujímá podíl na trhu jako velkou atrakci v architektonických vzorcích.

Tradiční vývoj uživatelského rozhraní obsahoval spoustu kódu pro zpracování komplikované logiky, takže architektonické vzory byly navrženy tak, aby redukovaly kód na úrovni uživatelského rozhraní (UI), čímž byly více "čisté" a zvládnutelné.

Takže se vzorem MVC tvoří webová aplikace

  • Modelka (data)
  • Pohled (rozhraní pro zobrazení a manipulaci s daty)
  • Ovladač (operace a akce provedené na datech)

The Modelka zpracovává data a podnikovou logiku a jsou zde Ne závislostí mezi Modelka a Ovladač nebo Pohled.

The Pohled zobrazuje data uživateli v podporovaném formátu a požadovaném rozložení a kdy Ovladač přijímá žádosti uživatelů (načítání dat), volá příslušné zdroje potřebné k vyplnění požadavku.

Použijeme tento vzor pro budování online knižního obchodu.

Uživatelé mohou vyhledávat, prohlížet, registrovat a kupovat knihy, stejně jako spravovat své profily a seznamy knih. Když uživatel klikne na kategorii SCI-FI, všechny související knihy by se měly zobrazit jako dostupné.

The Ovladače zpracovávat akce, které spravují knihy (seznam, přidání, zobrazení atd.). Může být více Ovladače s jedním hlavním Ovladač "Směrování provozu".

V tomto příkladě Ovladač je pojmenován controller_books.php a Modelka (např. model_books.php) zpracovává data a logiku související s knihami.

Nakonec, jiné Zobrazení bude třeba, jako při přidávání knih do košíku online nebo při prohlížení detailů knihy s obrázky a recenzemi.

The controller_books.php přijímá akci (požadavek uživatele) z hlavního počítače Ovladač (např. index.php). The controller_books.php analyzuje požadavek a zavolá model_books.php (data) pro návrat seznamu knih SCI-FI.

Odpovědnost Modelka je poskytnout tyto informace pomocí jakékoliv logiky, která byla použita (pomocí vyhledávacích filtrů). The Ovladač pak tyto informace převezme a předá je příslušnému Pohled (zobrazení vyhledávání, zobrazení tisku, detailní zobrazení apod.) a informace jsou prezentovány (prostřednictvím Pohled) uživateli, který inicioval požadavek.

Toto jsou základy modelu MVC, který vyvinul varianty modelování architektury, jako je Model-View-Presenter (MVP), Model View-ViewModel (MVVM), Hierarchický-Model-View-Controller (HMVC) a Model-View-Adapter (MVA) atd.

Vzor MVP

Model-View-Presenter (MVP)

The Vzor MVP je na nějakou dobu nějakou dobu a je variantou MVC. Byla navržena speciálně pro automatizaci testů, kde cílem bylo zvýšit množství kódu, který lze testovat pomocí automatizace a vzor řeší některé problémy s prezentační vrstvou a izoluje podnikovou logiku z uživatelského rozhraní.

Obrazovka je zobrazení, data, která zobrazuje, je model a předváděč spojuje dva dohromady.

MVP obsahuje následující komponenty se samostatnými odpovědnostmi:

  • Modelka (definuje data, která mají být zobrazena)
  • Pohled (zobrazuje data z modelu a přenáší žádosti uživatelů na předvádějícího).
  • Moderátor (interakce mezi Pohledem a Modelem a háčky dohromady)

The Pohled (webová stránka) zobrazuje a spravuje ovládací prvky stránky přesměrováním událostí (uživatelské požadavky) na Moderátor které byly zahájeny v roce 2005 Pohled.

The Moderátor reaguje na tyto události čtením a aktualizací Modelka pro změnu Pohled a proto Prezentace je zodpovědností zavazovat Modelka a Pohled.

Po pohledu na to MVC a MVP vzory mají společnou zodpovědnost za každou složku a podporují oddělení Pohled (UI) a Modelka (data). Významné rozdíly mezi těmito vzorci jsou patrnější v tom, jak jsou implementovány vzory.

MVP může být složitým modelem implementace pro pokročilá řešení, ale jistě má velký užitek, pokud je implementován jako dobře navržené řešení, i když nemusí být nutně vhodnou volbou pro jednoduchá řešení.

Vzor MVVM

Model-View-ViewModel (MVVM)

The MVVM vzor byl speciálně navržen pro platformy Windows Presentation Foundation (WPF) a Microsoft Silverlight a může být použit pro všechny XAML [i] platformy.

WPF je systém společnosti Microsoft, který vykresluje uživatelská rozhraní v programech se systémem Windows a byl poprvé vydán v rozhraní.NET Framework 3.0.

MVVM byl zdokonalován MVC a v tomto modelu Pohled je aktivní s chováním, událostmi a vázáním dat a Pohled synchronizuje s ViewModel (který umožňuje oddělení prezentace a odhaluje metody a příkazy pro správu a manipulaci s prezentací Modelka.

MVVM obsahuje tři hlavní součásti:

  • Modelka (představuje data s validací a obchodní logikou)
  • Pohled (Pohled je zodpovědný za definování struktury, uspořádání a vzhledu toho, co uživatel vidí na obrazovce. V ideálním případě je pohled definován výhradně pomocí XAML, s omezeným kódem za ním, který neobsahuje obchodní logiku. vazba mezi Pohled a ViewModel k zobrazování synchronizace modelu a modelu ViewModel s pohledem)
  • ViewModel (odděluje pohled od modelu a vystavuje metody a příkazy k manipulaci s daty (model).

The Pohled přijímá data z ViewModel (prostřednictvím vazby dat a metod) a za běhu Pohled se bude měnit při reakci na události v ViewModel.

The ViewModel zprostředkovává mezi Pohled a Modelka a zpracovává Pohled logika. Spolupracuje s Modelka - brát data z Modelka a předloží jej Pohled zobrazit.

Tyto komponenty jsou odděleny od sebe a umožňují tak větší flexibilitu pro samostatnou práci, izolaci testování jednotky a jejich výměnu, aniž by to ovlivnilo jakoukoli jinou součást.

Tato struktura umožňuje Modelka a další součásti, které se vyvíjejí samostatně, což umožňuje vývojářům souběžně pracovat na různých aspektech řešení. Například tam, kde návrháři pracují na Pohled, jednoduše generují vzorky dat bez nutnosti přístupu k ostatním komponentům. To usnadňuje snadné redesign uživatelského rozhraní jako Pohled je implementována v XAML.

Jak již bylo zmíněno výše MVP, jednoduchá řešení by nepotřebovala architekturu a designové vzory, jako "Hello World!" je příliš základní, aby bylo možné sledovat jakýkoli vzor; nicméně, jak více funkce, funkce a komponenty jsou představeny, složitost aplikace se zvyšuje, a tak se množství kódu, který musí být spravován.

Celkem

Od začátku vývoje uživatelského rozhraní se vzory designu stávají stále oblíbenějšími, aby usnadnily vývojový proces, aplikace jsou škálovatelnější a usnadňují snadnější testování.

Ilustrovaný rozdíl mezi vzory MVP a MVVM:

  • V obou MVP a MVVM, Pohled je vstupním bodem aplikace
  • v MVP, existuje mapování mezi jednotlivými uživateli Pohled a Moderátor, kde MVVM, vztah je jeden k mnoho mezi Pohled a ViewModel.
  • MVP se používá především pro aplikace Windows Forms a Windows Phone a MVVM je určen pro aplikace Silverlight, WPF, Knockout / AngularJS atd.