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.