MVC-arkkitehtuuri

Wikipediasta
Siirry navigaatioon Siirry hakuun

MVC-arkkitehtuuri (sanoista model-view-controller eli malli–näkymä–käsittelijä) on ohjelmistoarkkitehtuuri, jonka tarkoituksena on käyttöliittymän erottaminen sovellusaluetiedosta. MVC-arkkitehtuuria käytetään etenkin graafisten käyttöliittymien suunnittelussa ja ohjelmoinnissa. Se on kehitetty alun perin Smalltalk-kielen yhteydessä Xerox PARC:issa.

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.
  • 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.
  • 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.
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.