Mis on MVC?

MVC ehk mudelivaate kontroller on tarkvaras kasutatav tehnika. Selle põhieesmärk on teha vahet selle vahel, kuidas tarkvara andmeid käsitleb ja kuidas tarkvara kasutajaga suhtleb. See eristus tähendab, et protsesse saab eraldi käsitleda, arendada ja kontrollida, mis võib olla tõhusam.

Protsess põhineb kontseptsioonil, et kõige lihtsamal tasemel täidab kogu tarkvara sama kolmeastmelist funktsiooni. Esiteks sisestab kasutaja andmed, seejärel töötleb tarkvara andmeid ja lõpuks väljastab tarkvara tulemused uue andmekogumina. Selle väga lihtne näide on kasutaja, kes tippib kalkulaatorisse “2+2=”, kalkulaator töötab välja vastuse ja seejärel kuvab kalkulaator “4”.

MVC-süsteemis nimetatakse seda, kuidas arvuti andmeid töötleb, mudelina. Tulemuste väljundit nimetatakse vaateks. Kasutaja sisestatud andmeid nimetatakse vastutavaks töötlejaks. Oluline on meeles pidada, et vaade ja kontroller on programmi osad, mis juhivad sisendit ja väljundit. Mõisted ei viita tavaliselt füüsilistele objektidele, nagu klaviatuur või monitor.

MVC kasutamise eesmärk on muuta tarkvaraprotsessi erinevate elementide eraldamine lihtsamaks. Süsteemi kasutades jaguneb programm efektiivselt kolmeks osaks: andmetöötlus, sisendprotsess ja väljundprotsess. See tähendab, et muudatusi programmi ühes osas saab teha sujuvamalt, ilma et peaks ka teisi programmi osi ümber kirjutama.

Laialdaselt peetakse mudelivaate kontrollerisüsteemi teerajajaks programmeerimiskeeles nimega Smalltalk. 1970. aastatel Xeroxis loodud Smalltalk oli osaliselt mõeldud inimestele andmetöötluse objektmudeli õpetamiseks. Lihtsamalt öeldes hõlmab see arvutusülesande jagamist eraldi osadeks ja programmi ülesehitamist nende osade koostoime järgi. Smalltalk oli ka dünaamilise programmeerimise näide, kus programmi saab üle vaadata isegi selle töötamise ajal.

MVC-süsteemi kasutatakse sageli veebipõhises tarkvaras, näiteks dünaamilistel või interaktiivsetel veebisaitidel. Sellistes olukordades on vaateks kood, näiteks HTML, mille tarkvara genereerib pärast päringu töötlemist. Näiteks otsingumootoris oleks otsingupäringu kast kontroller ja tulemuste leht vaade.