MVC-arkkitehtuuri

MVC-arkkitehtuuri (sanoista model-view-controller eli malli–näkymä–käsittelijä) on ohjelmistoarkkitehtuuri, jonka tarkoituksena on käyttöliittymän (view) ja datan (model) erottaminen sovelluksen toimintaa ohjaavasta osuudesta (controller). Vastuiden jakamisella pyritään parempaan ylläpidettävyyteen.
MVC-arkkitehtuuria käytetään etenkin graafisten käyttöliittymien suunnittelussa ja ohjelmoinnissa. Se on kehitetty alun perin Smalltalk-kielen yhteydessä Xerox PARC:issa.

 Osat 
MVC-arkkitehtuurissa ohjelma jaetaan kolmeen osaan: malliin, näkymään ja käsittelijään.
 Malli (model) kuvaa järjestelmän tiedon tallentamisen, ylläpidon ja käsittelyn (tietokantakuvaus).
 Näkymä (View) määrittää käyttöliittymän ulkoasun ja tietojen näytön esityksen käyttöliittymässä.
 Käsittelijä (Controller) / Ohjain eli kontrolleri vastaanottaa käyttäjältä tulevat käskyt sekä muuttaa mallia ja näkymää vastauksena niihin.

 Ominaisuudet 
 Etuja 
 Malli ei riipu näkymästä eikä ohjaimesta.
 Malli voidaan suunnitella, ohjelmoida ja testata riippumatta järjestelmän muista osista.
 Samaan malliin voidaan tehdä erilaisia käyttöliittymiä. Saman järjestelmän tietoon voi olla pääsy esimerkiksi natiivilla graafisella käyttöliittymällä ja webbikäyttöliittymällä.
 Näkymän ja ohjaimen toimintaan voidaan tehdä muutoksia muuttamatta mallia.
 Näkymän ja ohjaimen riippuvuus toisistaan on verrattain pieni.
 Tietonäyttöä (käyttöliittymä) voidaan muuttaa muuttamatta tiedonkäsittelijää (UI-ohjainta).
 Tietokäsittelijää (ja -mallia) voidaan muuttaa muuttamatta näkymää.
 Käyttöliittymän asynkronointi (ei-samanaikaisen tiedonvaihdon toteuttaminen) on helppoa.

 Haittoja 
 Sovellusaluekuvauksen jalkautuvat  UVC-arkkitehtuurin mukaisessa järjestelmässä kolmelle tasolle (tietonäkymä, tietomalli ja tietokäsittelijä). Järjestelmän sisällön ymmärtäminen voi näin muodostua vaikeaksi.
 Malli ei itsessään ohjaa kehittäjiä optimoimaan tietokantahakuja käyttöliittymän tarpeiden näkökulmasta. Tämän vuoksi tietokannasta haetaan helposti tarpeetonta tietoa ja tiedon hakuun käytetään tarpeeseen optimoimattomia SQL-lauseita. Tämä aiheuttaa helposti suorituskykyongelmia laajoissa sovelluksissa. Suorituskykyongelmat voidaan kustannustehokkaasti välttää kiinnittämällä huomiota tähän ongelmaan sovelluskehityksen alusta asti.

 Lähteet 

Luokka:Ohjelmointi
Luokka:Ohjelmistoarkkitehtuuri
Luokka:Käyttöliittymät
Luokka:Seulonnan keskeiset artikkelit