Sobes.tech
Middle

Co je to architektonický vzor MVP?

sobes.tech AI

Odpověď od AI

MVP (Model-View-Presenter) je architektonický vzor, ktorý rozdeľuje aplikáciu na tri hlavné časti:

  1. Model: Obsahuje údaje a biznis logiku. Nie je závislý od View alebo Presenter, inkapsuluje stav aplikácie.
  2. View: Je zodpovedný za zobrazovanie údajov používateľovi a zachytávanie používateľských akcií. Je to čisté, pasívne zobrazenie bez biznis logiky. View informuje Presenter o akciách používateľa.
  3. Presenter: Pôsobí ako sprostredkovateľ medzi Modelom a View. Získa údaje z Modelu, spracuje ich a odovzdá ich View na zobrazenie. Prijíma udalosti z View a riadi Model ako reakciu na tieto udalosti. Obsahuje logiku rozhodovania o tom, čo sa má zobraziť a aké akcie sa majú vykonať.

Výhody:

  • Oddelenie zodpovedností: Jasné rozdelenie logiky a prezentácie.
  • Testovateľnosť: Model a Presenter sú ľahko testovateľné v izolácii, pretože nezávisia od používateľského rozhrania.
  • Udržiavateľnosť: Zmeny vo View, Model alebo Presenter majú menší vplyv na ostatné komponenty.
  • Možnosť vytvoriť viacero View pre jeden Model: Rôzne pohľady môžu používať rovnakú logiku Presenter a Model.

Príklad interakcie:

  1. Používateľ klikne na tlačidlo vo View.
  2. View oznámi Presenterovi udalosť (volá metódu Presenter-a).
  3. Presenter prijme udalosť, pristupuje k Modelu na získanie alebo zmenu údajov.
  4. Model spracuje požiadavku a vráti výsledok Presenterovi.
  5. Presenter prijme údaje od Modelu a aktualizuje View (volá metódy View na zobrazenie nových údajov).

MVP môže byť implementované rôznymi spôsobmi:

  • Pasívne View: View je úplne pasívne a iba zobrazuje údaje odovzdané mu Presenterom. Celá logika spracovania vstupov používateľa je v Presenterovi.
  • Supervízorský kontrolér: View obsahuje určitú logiku zobrazenia a Presenter spravuje zložitejšie operácie a interakciu s Modelom. View môže čiastočne aktualizovať svoj stav priamo z Modelu cez data binding.