Junior
Kirjeldage MVC koostöö mudelit.
sobes.tech AI
Vastus AI-lt
Arhitektuurimuster, mis jagab rakenduse kolme omavahel seotud ossa:
- Mudeli: Esindab andmeid ja äriloogikat. Ei oma teavet vaate või kontrolleri kohta. Teavitab vaadet oma andmete muutustest (Observer, Listener kaudu).
- Vaade: Kuvab mudelist andmeid ja reageerib kasutaja tegevustele. Ei sisalda äriloogikat ning ei suhtle otse mudeliga. Saadab päringuid kontrollerile kasutaja interaktsiooni ajal.
- Kontroller: Vahepealne ühendaja mudeli ja vaate vahel. Töötleb vaadete kasutaja sisendeid, uuendab mudelit ja valib vaate kuvamiseks.
Eelised:
- Vastutuste eraldamine.
- Paranenud testitavus (mudelit ja kontrollerit testitakse sõltumatult).
- Võimalus taaskasutada (eriti mudelit).
Miinused:
- Muutub mahukaks keerukate kasutajaliideste puhul (paksud kontrollerid - "massiivsed kontrollerid").
- Vaate ja mudeli vahelise suhtluse võib olla segadusttekitav (kontrolleri kaudu).
- Tihe side vaate ja kontrolleri vahel (Androidis täidab sageli mõlema rolli).
Androidis täidab Activity või Fragment sageli nii vaate kui ka kontrolleri funktsioone, mis raskendab nende eraldamist. Puhas MVC vormi Androidis harva kasutatakse, sagedamini kasutatakse tuletatud mustreid nagu MVP või MVVM.