Keri sisuni

MVC disainimuster

Model-View-Controller (MVC) on üks vanimaid kasutusliideste disainimustreid, mida esimest korda mainiti erialases kirjanduses seitsmekümnendatel.

Kasutusliideste disainimustrite ülesandeks on lahendada korra ja kaose küsimus programmide kasutusliideste taga. Varasematest ainetest peaks iga õpilane mäletama näiteid, kus vormi laadimise sündmuse ajal laeti andmebaasist andmeid või kus nupul vajutamise peale salvestati andmed andmebaasi.

Selline lähenemine seob programmi funktsionaalsused tihedalt vormiga ning praktiliselt välistab funktsionaalsuste korduvkasutamise. Kui puudub korduvkasutamise võimalus, siis tuleb samu funktsionaalsusi dubleerida kõikidesse programmi osadesse, kus neid vaja on. Kui dubleeritud kood sisaldas vigu, siis koos koodiga dubleeriti ka vead. Kui vead on dubleeritud, siis tuleb neid parandada mitmes kohas. Kui sama kood on mitmes kohas, siis peavad arendajad seda mäletama. Tavaliselt nii ei juhtu.

See probleem on motivaatoriks pea kõikide kasutusliideste disainimustrite loomisele. Hoolimata mustrist on lahendus oma olemuselt sama - eraldada kasutusliidese kood programmi pakutavatest funktsionaalsustest.

MVC koostisosad

MVC disainimuster koosneb kolmest komponendist:

  • Controller (kontroller) - kasutaja ja mudeli vahelist suhtlust koordineeriv klass, mis edastab kasutajalt tulnud sisendi ja käsud kas mudelile või vaatele ning otsustab, järgmise sammu (kuvame vaadet, suuname mõnele teisele lehele jne).
  • Model (mudel) - klass, mis oskab suhelda süsteemi äriloogikaga (teeb andmete saamiseks päringuid ja saadab andmeid salvestamisele).
  • View (vaade) - andmete visuaalne esitus (ekraanivorm, veebileht, kuvakomponent nagu graafik jne).

Järgnev joonis Wikipediast illustreerib MVC disainimustrit.