MVC, MVP, MVVM: Který si vybrat?

MVC, MVP, MVVM: Který si vybrat?

Moderní aplikace potřebují takovou rozmanitost funkcí, že proces jejich vývoje nabyl na velikosti a složitosti. Chcete-li pomoci, můžete použít architektonický návrhový vzor. Podporují vytváření aplikací, které lze snadno testovat a udržovat.





Tři nejoblíbenější designové vzory jsou MVC, MVP a MVVM. MVC je zkratka pro model, view a controller, zatímco MVP je zkratka pro model, view a presenter a MVVM pro model, view a view model.





Architektonické a designové vzory

architektonický vzor

Architektonický vzor objasňuje a definuje některé klíčové součásti softwarové architektury. I když architektonický vzor vyjadřuje obraz systému, není to architektura . Ve skutečnosti jde o obecné a opakovaně použitelné řešení běžně se vyskytujícího problému v architektuře softwaru v určitém kontextu.





Návrhový vzor

Návrhový vzor je formalizovaný osvědčený postup, který můžete použít k řešení běžných problémů při navrhování aplikace nebo systému.

jak přenést fotografie z iphone do počítače

Rozdíl mezi architektonickým a designovým vzorem

Začněme běžným termínem – vzor. V softwaru je vzor opakující se vlastnost, která vám umožňuje rozdělit obrovskou a složitou strukturu na menší, jednodušší součásti. Tento vzor můžete použít k vytvoření obecného řešení pro třídu problémů.



V každé úrovni vývoje softwaru budete používat různé nástroje. Na menších úrovních jsou tyto nástroje návrhovými vzory. Architektonické vzory existují na větších úrovních a programovací paradigmata na implementační úrovni.

Proč potřebujeme architektonické designové vzory?

Během vývoje softwaru můžete použít architektonické návrhové vzory k řešení běžných problémů. Dobrá architektura vám také může pomoci:





  • Rozdělte složité úkoly na jednodušší úkoly.
  • Snížit chyby.
  • Vytvářejte testovatelný a udržovatelný kód.

Ale bez architektonického vzoru můžete čelit problémům s udržováním obchodní logiky vaší aplikace.

Model, View, ViewModel, Controller a Presenter

Než se podíváte na každý vzor, ​​zde jsou pojmy, které je tvoří:





  • Modelka ukládá data a komunikuje přímo s databází. Model je část, která představuje vaše data a aplikační logiku. Definuje obchodní pravidla, která řídí manipulaci s daty, úpravy nebo zpracování.
  • Pohled zobrazuje data modelu a je zodpovědný za reprezentaci dat v uživatelském rozhraní.
  • ZobrazitModel je exkluzivní pro vzor MVVM. Toto je abstrakce vrstvy pohledu a funguje také jako obal pro data modelu.
  • Ovladač je komponenta, která integruje pohled a model.
  • Moderátor je komponenta, která existuje pouze v modelu MVP. Presenter získává vstup z komponenty pohledu a zpracovává data pomocí modelu.

Vzory MVC, MVP a MVVM

Vzor Model-View-Controller

The Architektonický vzor MVC byl první a dnes je populární v oblasti webových aplikací. Byl představen v 70. letech 20. století. Tento vzor vám umožňuje vytvořit aplikaci na principu Separation of Concerns (SoC). Usnadňuje to úsilí, které potřebujete k testování, údržbě a vývoji vaší aplikace.

Ve vzoru MVC model nerozumí pohledu nebo ovladači. Pozorovatel modelu obdrží upozornění, kdykoli dojde ke změně pohledu a ovladače. Ovladač pomáhá procesu směrování připojit model k příslušnému pohledu.

Některé z výhod MVC vzoru jsou:

  • Oddělení obav (více zaměřené).
  • Usnadňuje testování a správu kódu.
  • Podporuje oddělení vrstev aplikace.
  • Lepší organizace kódu a opětovná použitelnost.

MVC funguje takto:

  Obrázek diagramu, který ilustruje, jak MVC funguje

Díky SoC může MVC zmenšit velikost kódu a vytvořit dobrý kód, který je čistý a spravovatelný.

Vzor Model-View-Presenter

Vzor MVP sdílí s MVC dvě součásti: model a pohled. Nahrazuje ovladač prezentérem. Prezentátor – jak jeho název napovídá – se používá k prezentaci něčeho. Umožňuje vám to snadněji zesměšňovat pohled.

V MVP má prezentující funkcionalitu „prostředníka“, protože je na něj vtlačena veškerá logika prezentace. Zobrazení a prezentující v MVP jsou také na sobě nezávislé a spolupracují prostřednictvím rozhraní.

Zde je ilustrace toho, jak funguje vzor MVP:

  Obrázek diagramu, který ilustruje, jak MVP funguje

Prezentující přijímá vstup od uživatele prostřednictvím pohledu. Poté pomocí modelu zpracovává akce uživatele a předává výsledky zpět do pohledu. Prezentující komunikuje s pohledem přes rozhraní.

Model-View-ViewModel Pattern

MVVM je moderní evoluce MVC. Hlavním cílem MVVM je poskytnout jasné oddělení mezi doménovou logikou a prezentační vrstvou. MVVM podporuje obousměrnou datovou vazbu mezi pohledem a modelem pohledu.

Vzor MVVM vám umožňuje oddělit pohled a model vašeho kódu. To znamená, že když se model změní, pohled to být nemusí a naopak. Pomocí viewmodelu můžete provádět testování jednotek a testovat své logické chování bez zapojení vašeho pohledu.

Zde je ukázka toho, jak MVVM funguje:

  Obrázek diagramu, který ilustruje, jak MVVM funguje

Kdy použít MVC, MVP a MVVM

Nyní, když jste se dozvěděli o každém vzoru, zjistěte, kdy je použít.

Kdy použít MVC

MVC je jednoduše implementace Separation of Concerns. Pokud vaše aplikace potřebuje oddělit data (model), drcení dat (řadič) a prezentaci dat (zobrazení), MVC bude fungovat dobře. MVC také dobře poslouží v aplikaci, kde se zdroj dat a/nebo prezentace dat může kdykoli změnit.

Kdy použít MVP

MVP můžete použít, když má vaše aplikace obousměrný tok. Pokud uživatelské interakce potřebují od modelu něco požadovat a výsledek tohoto požadavku okamžitě změní uživatelské rozhraní, zvažte MVP.

Kdy použít MVVM

MVVM budete chtít používat, když:

  • Musíte sdílet projekt s designérem a práce na návrhu a vývoji mohou probíhat nezávisle.
  • Pro svá řešení potřebujete testování jednotek.
  • Musíte mít opakovaně použitelné komponenty, a to jak v rámci projektů ve vaší organizaci, tak i mezi nimi.
  • Chcete větší flexibilitu při změně pohledů, aniž byste museli refaktorovat jinou logiku v základně kódu.

Který vzor byste si měli vybrat?

Hlavním důvodem použití návrhového vzoru je snížení složitosti. Můžete to udělat snížením celkové složitosti nebo nahrazením neznámé složitosti známou. Pokud návrhový vzor nemůže snížit složitost jedním z těchto dvou způsobů, nepoužívejte žádný z nich; nepřidá to žádnou hodnotu.

Pokud jste si opravdu jisti, že byste měli použít návrhový vzor, ​​zkuste si vytvořit kontrolní seznam. Vycházejte ze situací, které jste zde viděli, a vyberte si to, co se nejlépe hodí pro váš projekt.