Sobes.tech
Junior

Beschrijf het MVC-interactiemodel.

sobes.tech AI

Antwoord van AI

Architectuurpatroon dat de applicatie opdeelt in drie onderling verbonden delen:

  • Model: Vertegenwoordigt gegevens en bedrijfslogica. Heeft geen informatie over View of Controller. Informeert de View over wijzigingen in zijn gegevens (via Observer, Listener).
  • View: Toont gegevens uit het model en reageert op gebruikersacties. Bevat geen bedrijfslogica en interageert niet direct met het Model. Stuurt verzoeken naar de controller bij gebruikersinteractie.
  • Controller: Verbindt het Model en de View. Verwerkt gebruikersinvoer van de View, werkt het Model bij en kiest de View om weer te geven.

Voordelen:

  • Verantwoordelijkheden scheiden.
  • Verbeterde testbaarheid (Model en Controller worden onafhankelijk getest).
  • Mogelijkheid tot hergebruik (vooral van het Model).

Nadelen:

  • Wordt onhandig voor complexe UI's (dikke controllers - "massieve controllers").
  • De interactie tussen View en Model kan verwarrend zijn (via Controller).
  • Strakke koppeling tussen View en Controller (in Android fungeert de Activity vaak in beide rollen).

In Android vervult de Activity of Fragment vaak functies als zowel View als Controller, wat de scheiding bemoeilijkt. In de zuivere vorm wordt MVC zelden toegepast in Android, vaker worden afgeleide patronen zoals MVP of MVVM gebruikt.