MVC Framework Tutorial aloittelijoille: Mikä on, Architecture & Esimerkki
Mikä on MVC Framework?
- Model-View-Controller (MVC) Framework on arkkitehtoninen malli, joka jakaa sovelluksen kolmeen loogiseen pääkomponenttiin Model, View ja Controller. Tästä johtuu lyhenne MVC. Jokainen arkkitehtuurikomponentti on rakennettu käsittelemään sovelluksen tiettyä kehitysnäkökohtaa. MVC erottaa liiketoimintalogiikan ja esityskerroksen toisistaan. Sitä käytettiin perinteisesti työpöydän graafisissa käyttöliittymissä (GUI). Nykyään verkkoteknologian MVC-arkkitehtuurista on tullut suosittu sekä verkkosovellusten että mobiilisovellusten suunnittelussa.
MVC:n historia
- Trygve Reenskaug käsitteli MVC-arkkitehtuuria ensimmäisen kerran vuonna 1979
- MVC-malli esiteltiin ensimmäisen kerran vuonna 1987 Smalltalk-ohjelmointikielellä.
- MVC hyväksyttiin ensimmäistä kertaa yleisenä käsitteenä vuoden 1988 artikkelissa
- Viime aikoina MVC-kuviota käytetään laajalti nykyaikaisissa verkkosovelluksissa
MVC:n ominaisuudet
- Helppo ja kitkaton testattavuus. Erittäin testattava, laajennettava ja liitettävä kehys
- Verkkosovellusarkkitehtuurin suunnittelussa MVC-mallilla se tarjoaa täyden hallinnan HTML-koodisi ja URL-osoitteiden suhteen
- Hyödynnä ASP.NETin, JSP:n, Djangon jne. tarjoamia ominaisuuksia.
- Selkeä logiikan erottelu: malli, näkymä, ohjain. Sovellustehtävien erottelu mm. liiketoimintalogiikka, Ul-logiikka ja syöttölogiikka
- URL-reititys SEO-ystävällisille URL-osoitteille. Tehokas URL-kartoitus ymmärrettäville ja haettavissa oleville URL-osoitteille
- Tuki testilähtöiselle kehitykselle (TDD)
MVC Archirakenne
Tässä on MVC-kehyksen yksityiskohtainen arkkitehtuuri:
Kolme tärkeää MVC-komponenttia ovat:
- Malli: Se sisältää kaikki tiedot ja siihen liittyvän logiikan
- Näytä: Näytä tiedot käyttäjälle tai käsittelee käyttäjän vuorovaikutusta
- Ohjain: Model- ja View-komponenttien välinen liitäntä
Katsotaanpa tämä komponentti toisilleen yksityiskohtaisesti:
Näytä
Näkymä on se osa sovelluksesta, joka edustaa tietojen esitystapaa.
Näkymät luodaan mallitiedoista kerätyistä tiedoista. Näkymä pyytää mallia antamaan tietoja, jotta se esittää tulosesityksen käyttäjälle.
Näkymä edustaa myös kaavioiden, kaavioiden ja taulukoiden tietoja. Esimerkiksi mikä tahansa asiakasnäkymä sisältää kaikki käyttöliittymäkomponentit, kuten tekstilaatikot, pudotusvalikot jne.
ohjain
Ohjain on se osa sovellusta, joka hoitaa käyttäjän vuorovaikutuksen. Ohjain tulkitsee käyttäjän antamat hiiren ja näppäimistön syötteet ja ilmoittaa mallin ja näkymän muuttumisesta tarpeen mukaan.
Ohjain lähettää mallille komennot sen tilan päivittämiseksi (esim. tietyn asiakirjan tallentaminen). Ohjain lähettää myös komennot siihen liittyvään näkymään muuttaakseen näkymän esitystapaa (esimerkiksi vierittää tiettyä asiakirjaa).
Malli
Mallikomponentti tallentaa tiedot ja siihen liittyvän logiikan. Se edustaa dataa, jota siirretään ohjaimen komponenttien tai muun asiaan liittyvän liiketoimintalogiikan välillä. Esimerkiksi Controller-objekti hakee asiakastiedot tietokannasta. Se käsittelee tietoja ja lähettää takaisin tietokantaan tai käyttää sitä samat tiedot.
Se vastaa näkymien pyyntöön ja vastaa myös ohjaimen ohjeisiin päivittää itsensä. Se on myös mallin alin taso, joka vastaa tietojen ylläpidosta.
MVC-esimerkkejä
Katsotaanpa mallinäkymäohjaimen esimerkkiä jokapäiväisestä elämästä:
Esimerkki 1
- Oletetaan, että menet ravintolaan. Et mene keittiöön valmistamaan ruokaa, jonka voit varmasti tehdä kotonasi. Sen sijaan menet sinne ja odotat, että tarjoilija tulee.
- Nyt tarjoilija tulee luoksesi ja tilaat ruoan. Tarjoilija ei tiedä kuka olet ja mitä haluat, hän vain kirjoitti muistiin ruokatilauksesi yksityiskohdat.
- Sitten tarjoilija siirtyy keittiöön. Keittiössä tarjoilija ei valmista ruokaasi.
- Kokki valmistaa ruokasi. Tarjoilijalle annetaan tilauksesi ja pöytänumerosi.
- Valmista sitten ruokaa sinulle. Hän käyttää ainesosia ruoan valmistukseen. Oletetaan, että tilaat kasvisvoileivän. Sitten hän tarvitsee leipää, tomaattia, perunaa, paprikaa, sipulia, palaa, juustoa jne. joita hän hankkii jääkaapista
- Kypsennä lopuksi luovuta ruoka tarjoilijalle. Nyt tarjoilijan tehtävänä on siirtää tämä ruoka keittiön ulkopuolelle.
- Nyt tarjoilija tietää, mitä ruokaa olet tilannut ja miten ne tarjoillaan.
Tässä MVC-arkkitehtuuriesimerkissä
View= You Waiter= Controller Cook= Model Refrigerator= Data
Katsotaanpa vielä yksi MVC-malliesimerkki,
Esimerkki 2
Auton ajomekanismi on toinen esimerkki MVC-mallista.
- Jokainen auto koostuu kolmesta pääosasta.
- View= Käyttöliittymä : (Vaihdevipu, paneelit, ohjauspyörä, jarru jne.)
- Ohjain - mekanismi (moottori)
- Malli - Varastointi (bensiini- tai dieselsäiliö)
Auto käy moottorista ottaa polttoainetta varastosta, mutta toimii vain mainituilla käyttöliittymälaitteilla.
Suositut MVC-verkkokehykset
Tässä on luettelo suosituista MVC-kehyksistä:
- Ruby on Rails
- Django
- cakePHP
- Yii
- Cherrypy
- Kevään MVC
- Katalysaattori
- Raiteet
- Zend-kehys
- CodeIgniter
- Laravel
- Polttoaine PHP
- Symphony
MVC:n edut: Tärkeimmät edut
Tässä on MVC-arkkitehtuurin käytön tärkeimmät edut:
- Helppo koodihuolto, jota on helppo laajentaa ja kasvattaa
- MVC Model -komponentti voidaan testata erikseen käyttäjästä
- Helpompi tuki uudentyyppisille asiakkaille
- Eri komponenttien kehitys voidaan suorittaa rinnakkain.
- Se auttaa välttämään monimutkaisuutta jakamalla sovelluksen kolmeen yksikköön. Malli, näkymä ja ohjain
- Se käyttää vain Front Controller -mallia, joka käsittelee verkkosovelluspyynnöt yhden ohjaimen kautta.
- Tarjoaa parhaan tuen testiohjattu kehitys
- Se toimii hyvin verkkosovelluksissa, joita tukevat suuret web-suunnittelijat ja -kehittäjät.
- Tarjoaa huolenaiheiden selkeän erottelun (SoC).
- Hakukoneoptimointi (SEO) -ystävällinen.
- Kaikki luokat ja objektit ovat toisistaan riippumattomia, joten voit testata niitä erikseen.
- MVC-suunnittelumalli mahdollistaa toisiinsa liittyvien toimintojen loogisen ryhmittelyn ohjaimella.
MVC:n käytön haitat
- Tätä mallia on vaikea lukea, muuttaa, yksikkötestata ja käyttää uudelleen
- Kehysnavigointi voi olla aika monimutkainen, koska se tuo uusia abstraktiokerroksia, mikä edellyttää käyttäjien sopeutumista MVC:n hajoamiskriteereihin.
- Ei virallista validointitukea
- Tietojen lisääntynyt monimutkaisuus ja tehottomuus
- MVC:n käytön vaikeus nykyaikaisen käyttöliittymän kanssa
- Rinnakkaisohjelmoinnin suorittamiseen tarvitaan useita ohjelmoijia.
- Tarvitaan useiden teknologioiden tuntemus.
- Useiden koodien ylläpito ohjaimessa
3-tason Architecture vs. MVC Archirakenne
Parametri | 3-Tier Archirakenne | MVC Archirakenne |
---|---|---|
Viestintä | Tämän tyyppinen arkkitehtuurimalli ei koskaan kommunikoi suoraan tietokerroksen kanssa. | Kaikki tasot kommunikoivat suoraan käyttämällä kolmiotopologiaa. |
Käyttö | 3-taso: käytetään laajalti verkkosovelluksissa, joissa asiakas, tietotasot ja väliohjelmisto toimivat fyysisesti erillisillä alustoilla. | Käytetään yleensä sovelluksissa, jotka toimivat yhdessä graafisessa työasemassa. |
Yhteenveto
- MVC on arkkitehtoninen malli, joka jakaa sovelluksen 1) malliin, 2) näkymään ja 3) ohjaimeen.
- Malli: Se sisältää kaikki tiedot ja siihen liittyvän logiikan
- Näytä: Näytä tiedot käyttäjälle tai käsittelee käyttäjän vuorovaikutusta
- Ohjain: Model- ja View-komponenttien välinen liitäntä
- Trygve Reenskaug käsitteli MVC-arkkitehtuuria ensimmäisen kerran vuonna 1979
- MVC-arkkitehtuuri sisään Java on erittäin testattava, laajennettava ja liitettävä kehys
- Jotkut suositut MVC-kehykset ovat Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP jne.