MVC-arkkitehtuuri
MVC-arkkitehtuuri (sanoista model-view-controller eli malli–näkymä–käsittelijä) on ohjelmistoarkkitehtuurityyli, 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.
Sisällysluettelo
Osat[muokkaa | muokkaa wikitekstiä]
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[muokkaa | muokkaa wikitekstiä]
Etuja[muokkaa | muokkaa wikitekstiä]
- 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[muokkaa | muokkaa wikitekstiä]
- 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.