Sobes.tech
Junior

Опишите модел интеракције MVC.

sobes.tech АИ

Одговор од АИ

Arhitektonski obrazac koji deli aplikaciju na tri međusobno povezane delove:

  • Model: Predstavlja podatke i poslovnu logiku. Nema informacija o View ili Controller. Obaveštava View o promenama svojih podataka (kroz Observer, Listener).
  • View: Prikazuje podatke iz modela i reaguje na akcije korisnika. Ne sadrži poslovnu logiku i ne komunicira direktno sa Modelom. Šalje zahteve kontroleru tokom interakcije korisnika.
  • Controller: Posrednik koji povezuje Model i View. Obraduje unos korisnika iz View, ažurira Model i bira View za prikaz.

Prednosti:

  • Odvajanje odgovornosti.
  • Poboljšana testabilnost (Model i Controller se testiraju nezavisno).
  • Mogućnost ponovne upotrebe (posebno Modela).

Nedostaci:

  • Postaje opširan za složene UI (debele kontrolere - "masivne kontrolere").
  • Interakcija između View i Model može biti zbunjujuća (kroz Controller).
  • Uska veza između View i Controller (u Androidu, Activity često obavlja obe uloge).

U Androidu, Activity ili Fragment često obavlja funkcije i View i Controller, što otežava razdvajanje. U čistom obliku, MVC se retko primenjuje u Androidu, češće se koriste izvedeni obrasci poput MVP ili MVVM.