Malli - näkymä - ohjain - Model–view–controller
Malli -näkymä -ohjain (tunnetaan yleensä nimellä MVC ) on ohjelmistosuunnittelumalli, jota käytetään yleisesti sellaisten käyttöliittymien kehittämiseen, jotka jakavat ohjelmalogiikan kolmeen toisiinsa liittyvään elementtiin. Tämä tehdään erottamaan tiedon sisäiset esitykset tavasta, jolla tiedot esitetään käyttäjälle ja hyväksytään käyttäjältä.
Perinteisesti työpöydän graafisissa käyttöliittymissä ( GUI ) käytetystä mallista on tullut suosittu verkkosovellusten suunnittelussa . Suosituilla ohjelmointikielillä on MVC -kehykset, jotka helpottavat kuvion toteuttamista.
Komponentit
- Malli
- Kuvion keskeinen osa. Se on sovelluksen dynaaminen tietorakenne käyttöliittymästä riippumatta. Se hallitsee suoraan sovelluksen tietoja, logiikkaa ja sääntöjä.
- Näytä
- Mikä tahansa tietojen esitys, kuten kaavio, kaavio tai taulukko. Useita näkymiä samoista tiedoista on mahdollista, kuten pylväskaavio hallintoa varten ja taulukonäkymä kirjanpitäjille.
- Ohjain
- Hyväksyy syötteen ja muuntaa sen mallin tai näkymän komentoiksi.
Sen lisäksi, että malli jaetaan näihin komponentteihin, malli -näkymä -ohjain -suunnittelu määrittää niiden välisen vuorovaikutuksen.
- Malli vastaa sovelluksen tietojen hallinnasta. Se vastaanottaa käyttäjän syötteen ohjaimelta.
- Näkymä esittää mallin esityksen tietyssä muodossa.
- Ohjain reagoi käyttäjän syötteeseen ja suorittaa vuorovaikutuksia tietomalliobjekteilla. Ohjain vastaanottaa tulon, validoi sen valinnaisesti ja välittää sen sitten mallille.
Kuten muutkin ohjelmistomallit, MVC ilmaisee ongelman "ytimen" ja sallii sen mukauttamisen kullekin järjestelmälle. Erityiset MVC -mallit voivat poiketa merkittävästi perinteisestä kuvauksesta.
Historia
Yksi tärkeimmistä oivalluksista graafisten käyttöliittymien varhaisessa kehittämisessä, MVC: stä tuli yksi ensimmäisistä lähestymistavoista kuvata ja toteuttaa ohjelmistorakenteita tehtäviensä suhteen .
Trygve Reenskaug esitteli MVC: n Smalltalk -79: ään käydessään Xerox Palo Alto -tutkimuskeskuksessa (PARC) 1970 -luvulla . 1980-luvulla Jim Althoff ja muut toteuttivat MVC-version Smalltalk-80-luokan kirjastoon. Vasta vuoden 1988 The Journal of Object Technology (JOT) -artikkeli ilmaisi MVC: n yleisenä käsitteenä.
MVC -malli on myöhemmin kehittynyt ja synnyttänyt muunnelmia, kuten hierarkkinen malli -näkymä -ohjain (HMVC), malli -näkymä -sovitin (MVA), malli -näkymä -esittelijä ( MVP), malli -näkymä -näkymämalli (MVVM), ja muut, jotka sovittivat MVC: n eri yhteyksiin.
Käyttö MVC mallia web-sovelluksissa räjähti suosio käyttöönoton jälkeen NeXT n WebObjects vuonna 1996, joka oli kirjoitettu alunperin Objective-C (joka lainattu raskaasti Smalltalk) ja auttoi täytäntöön MVC periaatteita. Myöhemmin MVC -mallista tuli suosittu Java -kehittäjien keskuudessa, kun WebObjects siirrettiin Javaan . Myöhemmät Java -kehykset, kuten Spring (julkaistu lokakuussa 2002), jatkoivat vahvaa sidettä Javan ja MVC: n välillä. Käyttöönotto kehysten Django (heinäkuussa 2005 ja Python ) ja kiskot (joulukuuta 2005 mennessä, Ruby ), jotka molemmat olivat painotetaan voimakkaasti nopea käyttöönotto, lisääntynyt MVC suosio ulkopuolella perinteisen yritysympäristössä, jossa se on jo pitkään ollut suosittu.
Käytä verkkosovelluksissa
Vaikka MVC on alun perin kehitetty pöytätietokoneita varten, se on laajalti otettu käyttöön suunnitteluna WWW -sovelluksille tärkeimmillä ohjelmointikielillä . On luotu useita web -kehyksiä, jotka pakottavat mallin. Näiden ohjelmistokehysten tulkinnat vaihtelevat pääasiassa sillä tavalla, että MVC -vastuut on jaettu asiakkaan ja palvelimen kesken .
Jotkin web -MVC -kehykset käyttävät ohut asiakaslähestymistapaa, joka sijoittaa lähes koko mallin, näkymän ja ohjaimen logiikan palvelimelle. Tässä lähestymistavassa asiakas lähettää joko hyperlinkkipyyntöjä tai lomakkeen lähetyksiä ohjaimelle ja vastaanottaa sitten täydellisen ja päivitetyn verkkosivun (tai muun asiakirjan) näkymästä; malli on kokonaan palvelimella.
Katso myös
- Monitasoinen arkkitehtuuri
- Hierarkkinen malli - näkymä - ohjain
- Malli -näkymä -sovitin
- Malli -näkymä -esittelijä
- Malli -näkymä -näkymämalli
- Entity-Control-Boundary-malli
- Esitys - abstraktio - ohjaus
- Toiminta - toimialue - vastaaja
- Tarkkailijan malli
- Huolien erottaminen
- Strategia malli
- Alasti esineitä