MVC raamõpetus algajatele: mis on Architektuur & näide
Mis on MVC Framework?
. Model-View-Controller (MVC) raamistik on arhitektuurne muster, mis jagab rakenduse kolmeks peamiseks loogiliseks komponendiks Model, View ja Controller. Sellest ka lühend MVC. Iga arhitektuurikomponent on loodud rakenduse konkreetse arendusaspekti käsitlemiseks. MVC eraldab äriloogika ja esitluskihi üksteisest. Seda kasutati traditsiooniliselt töölaua graafiliste kasutajaliideste (GUI) jaoks. Tänapäeval on veebitehnoloogia MVC arhitektuur muutunud populaarseks nii veebirakenduste kui ka mobiilirakenduste kujundamisel.
MVC ajalugu
- MVC arhitektuuri käsitles esmakordselt 1979. aastal Trygve Reenskaug
- MVC mudelit tutvustati esmakordselt 1987. aastal programmeerimiskeeles Smalltalk.
- MVC võeti esmakordselt vastu üldise kontseptsioonina 1988. aasta artiklis
- Viimasel ajal on MVC mustrit laialdaselt kasutatud kaasaegsetes veebirakendustes
MVC omadused
- Lihtne ja hõõrdumiseta testitavus. Väga testitav, laiendatav ja ühendatav raamistik
- Veebirakenduse arhitektuuri kujundamiseks MVC mustriga pakub see täielikku kontrolli nii teie HTML-i kui ka URL-ide üle
- Kasutage olemasolevaid funktsioone, mida pakuvad ASP.NET, JSP, Django jne.
- Loogika selge eraldamine: mudel, vaade, kontroller. Rakendusülesannete eraldamine nt. äriloogika, Ul-loogika ja sisendloogika
- URL-i marsruutimine SEO-sõbralike URL-ide jaoks. Võimas URL-i vastendamine arusaadavate ja otsitavate URL-ide jaoks
- Testipõhise arenduse (TDD) toed
MVC Architektuur
Siin on MVC raamistiku üksikasjalik arhitektuur:
Kolm olulist MVC komponenti on:
- Mudel: see sisaldab kõiki andmeid ja nendega seotud loogikat
- Vaade: kasutajale andmete esitamine või kasutaja interaktsiooni haldamine
- Kontroller: liides mudeli ja vaate komponentide vahel
Vaatame seda komponenti üksteisega üksikasjalikult:
vaade
Vaade on see rakenduse osa, mis esindab andmete esitust.
Vaated luuakse mudeliandmetest kogutud andmete põhjal. Vaade nõuab mudelilt teavet, et see esitaks kasutajale väljundesitluse.
Vaade esindab ka diagrammide, diagrammide ja tabelite andmeid. Näiteks sisaldab mis tahes kliendivaade kõiki kasutajaliidese komponente, nagu tekstikastid, rippmenüüd jne.
kontroller
Kontroller on rakenduse see osa, mis tegeleb kasutaja interaktsiooniga. Kontroller tõlgendab kasutajalt saadud hiire ja klaviatuuri sisendeid, teavitades mudelit ja vaadet vastavalt vajadusele muuta.
Kontroller saadab mudelile käsud selle oleku värskendamiseks (nt konkreetse dokumendi salvestamine). Samuti saadab kontroller sellega seotud vaatele käsud vaate esitluse muutmiseks (näiteks konkreetse dokumendi kerimine).
MUDEL
Mudeli komponent salvestab andmed ja nendega seotud loogika. See esindab andmeid, mida edastatakse vastutava töötleja komponentide või muu seotud äriloogika vahel. Näiteks kontrolleri objekt hangib andmebaasist klienditeabe. See manipuleerib andmetega ja saadab need tagasi andmebaasi või kasutab seda samade andmete renderdamiseks.
See vastab vaadete päringule ja vastab ka kontrolleri juhistele end värskendada. See on ka andmete säilitamise eest vastutava mustri madalaim tase.
MVC näited
Vaatame mudelivaate kontrolleri näidet igapäevaelust:
Näiteks 1
- Oletame, et lähete restorani. Te ei lähe kööki ja ei valmista toitu, mida saate kindlasti oma kodus teha. Selle asemel lähete sinna ja ootate, kuni kelner tuleb.
- Nüüd tuleb kelner teie juurde ja tellite toidu. Kelner ei tea, kes sa oled ja mida sa tahad, ta lihtsalt kirjutas üles sinu toidutellimuse üksikasjad.
- Seejärel liigub kelner kööki. Köögis ettekandja teile süüa ei valmista.
- Kokk valmistab sulle toidu. Kelnerile antakse teie tellimus koos teie laua numbriga.
- Küpsetage ja valmistage teile toitu. Ta kasutab toidu valmistamiseks koostisosi. Oletame, et tellite köögiviljavõileiva. Siis vajab ta leiba, tomatit, kartulit, paprikat, sibulat, bitti, juustu jne, mida ta hangib külmkapist
- Valmistage viimane toit kelnerile üle. Nüüd on kelneri ülesanne see toit köögist väljapoole tassida.
- Nüüd teab kelner, millised toidud olete tellinud ja kuidas neid serveeritakse.
Selles MVC arhitektuuri näites
View= You Waiter= Controller Cook= Model Refrigerator= Data
Vaatame veel ühte MVC mudeli näidet,
Näiteks 2
Auto juhtimismehhanism on veel üks näide MVC mudelist.
- Iga auto koosneb kolmest põhiosast.
- Vaade = kasutajaliides: (käigukang, paneelid, rool, pidur jne)
- Kontroller – mehhanism (mootor)
- Mudel – hoiuruum (bensiini- või diislipaak)
Auto töötab mootorist võtab kütust laost, kuid töötab ainult mainitud kasutajaliidese seadmete abil.
Populaarsed MVC veebiraamistikud
Siin on nimekiri populaarsetest MVC raamistikest:
- Ruby on Rails
- Django
- CakePHP
- Yii
- CherryPy
- Kevadine MVC
- Katalüsaator
- Rails
- Zendi raamistik
- CodeIgniter
- Laravel
- Kütus PHP
- Symphony
MVC eelised: peamised eelised
Siin on MVC arhitektuuri kasutamise peamised eelised:
- Lihtne koodihooldus, mida on lihtne laiendada ja kasvatada
- MVC mudeli komponenti saab testida kasutajast eraldi
- Lihtsam tugi uut tüüpi klientidele
- Erinevaid komponente saab arendada paralleelselt.
- See aitab teil vältida keerukust, jagades rakenduse kolmeks osaks. Mudel, vaade ja kontroller
- See kasutab ainult eesmise kontrolleri mustrit, mis töötleb veebirakenduste päringuid ühe kontrolleri kaudu.
- Pakub parimat tuge testipõhine arendus
- See töötab hästi veebirakenduste jaoks, mida toetavad suured veebidisainerite ja arendajate meeskonnad.
- Tagab probleemide puhta eraldamise (SoC).
- Otsingumootori optimeerimise (SEO) sõbralik.
- Kõik klassid ja objektid on üksteisest sõltumatud, nii et saate neid eraldi testida.
- MVC disainimuster võimaldab kontrolleri seotud toimingute loogilist rühmitamist.
MVC kasutamise puudused
- Seda mudelit on raske lugeda, muuta, katsetada ja uuesti kasutada
- Raamistiku navigeerimine võib ajaliselt keeruliseks muutuda, kuna see toob sisse uued abstraktsioonikihid, mis nõuavad kasutajatelt kohanemist MVC lagunemiskriteeriumidega.
- Ametlikku valideerimistuge pole
- Andmete suurenenud keerukus ja ebatõhusus
- MVC kasutamise raskus tänapäevase kasutajaliidesega
- Paralleelseks programmeerimiseks on vaja mitut programmeerijat.
- Vajalik on teadmine mitmest tehnoloogiast.
- Paljude koodide hooldus kontrolleris
3-tasand Architektuur vs MVC Architektuur
Parameeter | 3-astmeline Architektuur | MVC Architektuur |
---|---|---|
KOMMUNIKATSIOON | Seda tüüpi arhitektuurimuster ei suhtle kunagi otse andmekihiga. | Kõik kihid suhtlevad otse, kasutades kolmnurga topoloogiat. |
Kasutus | 3-tasandiline: kasutatakse laialdaselt veebirakendustes, kus klient, andmetasandid ja vahevara töötavad füüsiliselt eraldiseisvatel platvormidel. | Tavaliselt kasutatakse rakendustes, mis töötavad ühes graafilises tööjaamas. |
kokkuvõte
- MVC on arhitektuuriline muster, mis jagab rakenduse 1) mudeliks, 2) vaateks ja 3) kontrolleriks
- Mudel: see sisaldab kõiki andmeid ja nendega seotud loogikat
- Vaade: kasutajale andmete esitamine või kasutaja interaktsiooni haldamine
- Kontroller: liides mudeli ja vaate komponentide vahel
- MVC arhitektuuri käsitles esmakordselt 1979. aastal Trygve Reenskaug
- MVC arhitektuur sisse Java on väga testitav, laiendatav ja ühendatav raamistik
- Mõned populaarsed MVC raamistikud on Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP jne.