Sobes.tech
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.