Junior
Popíšte model interakcie MVC.
sobes.tech AI
Odpoveď od AI
Architektonický vzor, ktorý delí aplikáciu na tri navzájom prepojené časti:
- Model: Predstavuje údaje a obchodnú logiku. Nemá informácie o View alebo Controller. Oznámi View o zmenách svojich údajov (cez Observer, Listener).
- View: Zobrazuje údaje z modelu a reaguje na akcie používateľa. Neobsahuje obchodnú logiku a neinteraguje priamo s Modelom. Posiela požiadavky na controller pri interakcii používateľa.
- Controller: Spojovací sprostredkovateľ medzi Modelom a View. Spracováva vstup používateľa z View, aktualizuje Model a vyberá View na zobrazenie.
Výhody:
- Oddelenie zodpovedností.
- Vylepšená testovateľnosť (Model a Controller sú testované nezávisle).
- Možnosť opakovanej použiteľnosti (najmä Modelu).
Nevýhody:
- Stáva sa objemným pre zložité UI (hrubé controllery - "masívne controllery").
- Interakcia medzi View a Model môže byť mätúca (cez Controller).
- Tiesna väzba medzi View a Controller (v Android, Activity často plní obe úlohy).
V Android, Activity alebo Fragment často plní funkcie ako View, tak Controller, čo sťažuje oddelenie. V čistej podobe sa MVC v Androidu zriedka používa, častejšie sa používajú odvodené vzory ako MVP alebo MVVM.