Junior
Opisz model interakcji MVC.
sobes.tech AI
Odpowiedź od AI
Wzorzec architektoniczny dzielący aplikację na trzy powiązane ze sobą części:
- Model: Reprezentuje dane i logikę biznesową. Nie zawiera informacji o View ani Controllerze. Powiadamia View o zmianach swoich danych (przez Observer, Listener).
- View: Wyświetla dane z modelu i reaguje na działania użytkownika. Nie zawiera logiki biznesowej i nie wchodzi w bezpośrednią interakcję z Modelem. Wysyła żądania do kontrolera podczas interakcji użytkownika.
- Controller: Pośrednik łączący Model i View. Przetwarza wejście użytkownika z View, aktualizuje Model i wybiera View do wyświetlenia.
Zalety:
- Podział odpowiedzialności.
- Lepsza testowalność (Model i Controller są testowane niezależnie).
- Możliwość ponownego użycia (zwłaszcza Modelu).
Wady:
- Staje się nieczytelny dla złożonych interfejsów użytkownika (grube kontrolery - "masywne kontrolery").
- Interakcja między View a Modelem może być myląca (przez Controller).
- Ścisłe powiązanie między View a Controller (w Androidzie Activity często pełni obie role).
W Androidzie, Activity lub Fragment często pełni funkcje zarówno View, jak i Controller, co utrudnia rozdzielenie. W czystej formie MVC rzadko jest stosowany w Androidzie, częściej używa się pochodnych wzorców, takich jak MVP lub MVVM.