MVC vs MVVM – erinevus nende vahel
Peamised erinevused MVC ja MVVM vahel
- MVC raamistik on arhitektuurne muster, mis jagab rakenduse kolmeks peamiseks loogiliseks komponendiks: mudel, vaade ja kontroller. Teisest küljest hõlbustab MVVM graafilise kasutajaliidese arendamise eraldamist märgistuskeele või GUI koodi abil
- MVC-s on kontroller rakenduse sisenemispunktiks, MVVM-is aga vaade rakenduse sisenemispunktiks.
- MVC mudeli komponenti saab testida kasutajast eraldi, samas kui MVVM-i on lihtne eraldi üksuste testimiseks ja kood on sündmustepõhine.
- MVC arhitektuur loob "üks-mitmele" seose kontrolleri ja vaate vahel, samas kui MVVM arhitektuur määratleb "üks-mitmele" suhte vaate ja vaatemudeli vahel.
Mis on MVC?
. MVC raamistik on arhitektuurne muster, mis jagab rakendused kolmeks peamiseks loogiliseks komponendiks: mudel, vaade ja kontroller. Sellest ka lühend MVC. MVC täisvorm on mudelivaate kontroller.
Selles arhitektuuris on komponent loodud rakenduse spetsiifiliste arendusaspektide käsitlemiseks. MVC eraldab äriloogika ja esitluskihi üksteisest. Seda arhitektuurimustrit kasutatakse peamiselt töölaua graafiliste kasutajaliideste (GUI) jaoks.
Mis on MVVM?
MVVM arhitektuur hõlbustab graafilise kasutajaliidese arendamise eraldamist märgistuskeele või GUI koodi abil. MVVM-i täisvorm on Model-View-ViewModel.
MVVM-i vaatemudel on väärtuste teisendaja, mis tähendab, et vaatemudel vastutab mudeli andmeobjektide eksponeerimise eest sellisel viisil, et objekte oleks lihtne hallata ja esitleda.
MVC muster
Kolm olulist MVC komponenti on:
- Mudel: See sisaldab kõiki andmeid ja nendega seotud loogikat.
- vaade: Esitab kasutajale andmeid või haldab kasutaja interaktsiooni.
- kontroller: Liides mudeli ja vaate komponentide vahel.
Vaatame üksikasjalikult kõiki neid komponente:
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 aitab teil andmebaasist klienditeavet hankida. See manipuleerib andmetega ja saadab need tagasi andmebaasi või kasutab seda samade andmete renderdamiseks.
vaade
Vaade on rakenduse see osa, mis esindab andmete esitust. Vaated luuakse mudeliandmetest kogutud andmete põhjal. Vaade nõuab mudelilt teavet, et see edastaks väljundi kasutajale uuesti.
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 haldab kasutajaga suhtlemist. Kontroller tõlgendab kasutajalt saadud hiire ja klaviatuuri sisendeid, teavitades mudelit ja vaadet vastavalt vajadusele muutma.
Kontroller saadab mudelile käsud selle oleku värskendamiseks (nt konkreetse dokumendi salvestamine). Kontroller saadab ka sellega seotud vaatele käsud vaate esitluse muutmiseks (näiteks teatud dokumendi kerimine).
MVVM muster
Siin on MVVM-i muster:
MVVM-i arhitektuur pakub kahesuunalist andmete sidumist vaate ja vaatemudeli vahel. Samuti aitab see automatiseerida vaatemudelis olevate muudatuste edastamist vaatesse. Vaatemudel kasutab vaatemudelis muudatuste tegemiseks vaatleja mustrit.
Vaatame seda komponenti üksteisega üksikasjalikult:
MUDEL
Mudel salvestab andmed ja nendega seotud loogika. See esindab andmeid, mida edastatakse vastutava töötleja komponentide või muu seotud äriloogika vahel.
Näiteks kontrollib objekt õpilase teabe kooli andmebaasist. See manipuleerib andmetega ja saadab need tagasi andmebaasi või kasutab seda samade andmete renderdamiseks.
vaade
Vaade tähistab kasutajaliidese komponente, nagu HTML, CSS, jQuery jne
mustrivaadet peetakse vastutavaks töötlejalt saadud andmete kuvamise eest. See vaade on muudetud ka mudeli(d) kasutajaliideseks (UI).
Vaata mudelit
Vaatemudel vastutab funktsioonide, käskude, meetodite esitamise eest, et toetada vaate olekut. Samuti vastutab mudeli kasutamine ja sündmuste aktiveerimine vaates.
Erinevus MVC ja MVVM vahel Architektuur
Siin on oluline erinevus MVVM-i ja MVC vahel
MVC (mudelivaate kontroller) | MVVM (mudelivaate vaatemudel) |
---|---|
Kontroller on rakenduse sisenemispunkt. | Vaade on rakenduse sisenemispunkt. |
Üks kuni mitu seost Controlleri ja View vahel. | Üks kuni mitu seost vaate ja vaate mudeli vahel. |
Vaade Ei viita kontrollerile | Vaatel on viited vaatemudelile. |
MVC on vana mudel | MVVM on suhteliselt uus mudel. |
Seda mudelit on raske lugeda, muuta, testida ja uuesti kasutada | Silumisprotsess on keeruline, kui meil on keerulised andmesidemed. |
MVC mudeli komponenti saab testida kasutajast eraldi | Lihtne eraldi üksuse testimine ja kood on sündmustepõhine. |
MVC omadused
Siin on MVC olulised omadused:
- Lihtne ja hõõrdumiseta testitavus. Väga testitav, laiendatav ja ühendatav raamistik
- Samuti saate kasutada olemasolevaid funktsioone, mida pakuvad ASP.NET, Django, JSP jne.
- See pakub täielikku kontrolli nii teie HTML-i kui ka URL-ide üle.
- See toetab testipõhist arendust (TDD)
- See arhitektuur pakub loogika eraldamist
- Võimaldab SEO-sõbralike URL-ide marsruutimist.
- Pakub kaardistamist arusaadavatele ja otsitavatele URL-idele.
MVVM-i omadused
Siin on MVVM-i arhitektuuri omadused:
- MVVM on kirjutatud andmete sidumisvõimalustega töölauarakendustele – XAML ja INotifyPropertyChanged liides
- Kui soovite vaatemudelis muuta, kasutab vaatemudel vaatleja mustrit.
- MVVM-mustrit kasutavad enamasti WPF, Silverlight, nRoute jne.
MVC eelised
Siin on MVC eelised/plussid
- Lihtsam tugi uut tüüpi klientidele
- Erinevaid komponente saab arendada paralleelselt.
- See väldib keerukust, jagades rakenduse eraldi (MVC) üksusteks
- See kasutab ainult eesmise kontrolleri mustrit, mis töötleb veebirakenduste päringuid ühe kontrolleri abil.
- Pakub parimat tuge testipõhiseks arenduseks
- See töötab hästi veebirakenduste puhul, mida toetavad suured veebidisainerite ja arendajate meeskonnad.
- See eraldab mured puhtalt (SoC).
- Kõik liigitatud ja objektid on üksteisest sõltumatud, nii et saate neid eraldi testida.
- MVC võimaldab kontrolleri seotud toimingute loogilist rühmitamist.
MVVM-i eelised
Siin on MVVM plussid / eelised
- Äriloogika on lahti seotud Ul
- Lihtne hooldada ja testida
- Lihtne taaskasutada komponente
- Lõdvalt seotud arhitektuur: MVVM muudab teie rakenduse arhitektuuri nii lõdvalt ühendatud.
- Saate kirjutada ühikutestijuhtumeid nii vaatemudeli kui ka mudelikihi jaoks, ilma et oleks vaja vaatele viidata.
MVC puudused
Siin on MVC miinused / puudused
- Äriloogika on segatud Ul
- Raske korduvkasutada ja teste rakendada
- 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.
MVVM-i puudused
Siin on MVVM miinused / puudused
- Paljude koodide hooldus kontrolleris
- Mõned inimesed arvavad, et MVVM-i arhitektuuri lihtsate kasutajaliideste puhul võib see olla üle jõu käiv.
- Ei paku tihedat seost vaate ja vaatemudeli vahel