MVC protiv MVVM – razlika između njih
Ključne razlike između MVC i MVVM
- MVC okvir je arhitektonski obrazac koji dijeli aplikaciju u tri glavne logičke komponente Model, View i Controller. S druge strane, MVVM olakšava odvajanje razvoja grafičkog korisničkog sučelja uz pomoć označnog jezika ili GUI koda
- U MVC-u je kontroler ulazna točka u aplikaciju, dok je u MVVM-u pogled ulazna točka u aplikaciju.
- Komponenta modela MVC može se testirati odvojeno od korisnika, dok je MVVM jednostavan za testiranje odvojene jedinice, a kod je vođen događajima.
- MVC arhitektura uspostavlja odnos "jedan prema više" između kontrolera i pogleda, dok MVVM arhitektura definira odnos "jedan prema više" između pogleda i modela pogleda.
Što je MVC?
Korištenje električnih romobila ističe MVC okvir je arhitektonski obrazac koji dijeli aplikacije u tri glavne logičke komponente Model, Pogled i Kontroler. Otuda i kratica MVC. Puni oblik MVC je Model View Controller.
U ovoj arhitekturi, komponenta je izgrađena za rukovanje specifičnim aspektima razvoja aplikacije. MVC odvaja poslovnu logiku i prezentacijski sloj jedan od drugog. Ovaj se arhitektonski obrazac uglavnom koristi za grafička korisnička sučelja (GUI) radne površine.
Što je MVVM?
MVVM arhitektura olakšava odvajanje razvoja grafičkog korisničkog sučelja uz pomoć označnog jezika ili GUI koda. Puni oblik MVVM je Model–View–ViewModel.
Model prikaza MVVM-a pretvarač je vrijednosti što znači da je model pogleda odgovoran za izlaganje podatkovnih objekata iz modela na takav način da se objektima lako upravlja i prezentira.
MVC obrazac
Tri važne MVC komponente su:
- Model: Uključuje sve podatke i povezanu logiku.
- Pregled: Predstavlja podatke korisniku ili upravlja interakcijom s korisnikom.
- kontroler: Sučelje između komponenti modela i prikaza.
Pogledajmo svaku od ovih komponenti u detalje:
Model
Komponenta modela pohranjuje podatke i povezanu logiku. Predstavlja podatke koji se prenose između komponenti kontrolera ili bilo koje druge povezane poslovne logike.
Na primjer, objekt Controller pomaže vam da dohvatite informacije o kupcu iz baze podataka. Manipulira podacima i šalje ih natrag u bazu podataka ili ih koristi za renderiranje istih podataka.
Pogled
Pogled je onaj dio aplikacije koji predstavlja prezentaciju podataka. Pogledi se stvaraju podacima prikupljenim iz podataka modela. Pogled zahtijeva od modela da da informacije kako bi ponovno poslao izlaz korisniku.
Pogled također predstavlja podatke iz grafikona, dijagrama i tablica. Na primjer, bilo koji korisnički prikaz uključivat će sve komponente korisničkog sučelja kao što su tekstni okviri, padajući izbornici itd.
kontrolor
Upravljač je onaj dio aplikacije koji upravlja interakcijom korisnika. Upravljač tumači unose miša i tipkovnice od korisnika, obavještavajući model i pogled da se promijene prema potrebi.
Upravljač šalje naredbe modelu da ažurira svoje stanje (npr. spremanje određenog dokumenta). Upravljač također šalje naredbe svom pridruženom pogledu za promjenu prezentacije pogleda (na primjer, pomicanje određenog dokumenta).
MVVM obrazac
Evo uzorka za MVVM:
MVVM arhitektura nudi dvosmjerno povezivanje podataka između pogleda i pogleda-modela. Također vam pomaže da automatizirate širenje izmjena unutar View-Modela na pogled. Model prikaza koristi obrazac promatrača za izmjene u modelu pogleda.
Pogledajmo ovu komponentu u detalje:
Model
Model pohranjuje podatke i povezanu logiku. Predstavlja podatke koji se prenose između komponenti kontrolera ili bilo koje druge povezane poslovne logike.
Na primjer, objekt Controller će dohvatiti informacije o učeniku iz školske baze podataka. Manipulira podacima i šalje ih natrag u bazu podataka ili ih koristi za renderiranje istih podataka.
Pogled
Pogled označava komponente korisničkog sučelja kao što su HTML, CSS, jQuery itd. U
pattern view odgovoran je za prikaz podataka koji su primljeni od Kontrolora kao rezultat. Ovaj se pogled također pretvara u model(e) u korisničko sučelje (UI).
Prikaži model
Model pogleda je odgovoran za predstavljanje funkcija, naredbi, metoda, za podršku stanja Pogleda. Također je odgovoran za upravljanje modelom i aktiviranje događaja u prikazu.
Razlika između MVC i MVVM Architektura
Ovdje su važne razlike između MVVM i MVC
MVC (Kontroler prikaza modela) | MVVM (Model View ViewModel) |
---|---|
Kontroler je ulazna točka u aplikaciju. | Pogled je ulazna točka u aplikaciju. |
Jedan prema više odnosa između kontrolera i pogleda. | Jedan prema više odnosa između View & View Model. |
Pogled Nema referencu na Kontrolor | View ima reference na View-Model. |
MVC je stari model | MVVM je relativno novi model. |
Teško za čitanje, promjenu, jedinično testiranje i ponovnu upotrebu ovog modela | Proces otklanjanja pogrešaka bit će kompliciran kada imamo složena povezivanja podataka. |
Komponenta MVC modela može se testirati odvojeno od korisnika | Jednostavan za zasebno testiranje jedinica, a kod je vođen događajima. |
Značajke MVC-a
Evo važnih značajki MVC-a:
- Jednostavna provjera bez trenja. Framework koji se može visoko testirati, proširiv i pluggable
- Također možete iskoristiti postojeće značajke koje nude ASP.NET, Django, JSP itd.
- Nudi potpunu kontrolu nad vašim HTML-om kao i vašim URL-ovima.
- Podržava Test Driven Development (TDD)
- Ova arhitektura nudi odvajanje logike
- Omogućuje usmjeravanje za SEO prijateljske URL-ove.
- Nudi mapiranje za razumljive i pretražive URL-ove.
Značajke MVVM
Ovdje su značajke MVVM arhitekture:
- MVVM je napisan za desktop aplikaciju s mogućnostima povezivanja podataka – XAML i INotifyPropertyChanged sučelje
- Ako želite izvršiti izmjene u View-Modelu, View-Model koristi uzorak promatrača.
- MVVM obrazac uglavnom koriste WPF, Silverlight, nRoute itd.
Prednosti MVC-a
Ovdje su prednosti/prednosti MVC-a
- Lakša podrška za novu vrstu klijenata
- Razvoj različitih komponenti može se izvoditi paralelno.
- Izbjegava složenost dijeljenjem aplikacije u zasebne (MVC) jedinice
- Koristi samo obrazac prednjeg kontrolera koji obrađuje zahtjeve web aplikacije pomoću jednog kontrolera.
- Nudi najbolju podršku za razvoj vođen testovima
- Dobro radi za web aplikacije koje podržavaju veliki timovi web dizajnera i programera.
- Omogućuje čisto odvajanje koncerna (SoC).
- Sve klase i objekti neovisni su jedni o drugima tako da ih možete testirati zasebno.
- MVC omogućuje logičko grupiranje povezanih akcija na kontroleru zajedno.
Prednosti MVVM
Ovdje su prednosti/prednosti MVVM-a
- Poslovna logika je odvojena od Ul
- Jednostavan za održavanje i testiranje
- Komponente koje se lako ponovno koriste
- Labavo povezana arhitektura: MVVM čini vašu aplikacijsku arhitekturu slabo spregnutom.
- Možete pisati slučajeve jediničnog testiranja i za model prikaza i za sloj modela bez potrebe za referenciranjem View'a.
Nedostaci MVC-a
Ovdje su mane/mane MVC-a
- Poslovna logika se miješa s Ul
- Teško je ponovno koristiti i implementirati testove
- Nema službene potpore za provjeru valjanosti
- Povećana složenost i neučinkovitost podataka
- Poteškoće korištenja MVC-a s modernim korisničkim sučeljem
- Postoji potreba za više programera za paralelno programiranje.
- Potrebno je poznavanje više tehnologija.
Nedostaci MVVM
Ovdje su mane/mane MVVM-a
- Održavanje puno kodova u kontroleru
- Neki ljudi misle da za jednostavna sučelja MVVM arhitektura može biti pretjerana.
- Ne nudi tijesnu vezu između prikaza i modela pogleda