Razlika između MVC i MVVM

Web stranica je više od onoga što izgleda izvana. U stvari, strukturni obrazac web stranice varira jednako kao i sama web stranica. Web stranica je složena mreža mnoštva komponenti koje međusobno djeluju kako bi pokrenule aplikaciju. Uzmimo za primjer Facebook, koji je jedan od najkompleksnijih web stranica koje koristimo gotovo svakodnevno. Idite na njegovu početnu stranicu i vidjet ćete da web stranica obrađuje gotovo desetak zahtjeva za podacima da ispune stranicu s nizom komponenti. Može se lako zamisliti da se logika načina na koji komponente međusobno utječu na pokretanje programa poput Facebooka može jako razlikovati od ostalih web stranica. Jezgra funkcionalnosti bilo koje web stranice definirana je lakoćom kojom prednji kraj djeluje na odgovarajući model radi dobivanja podataka koje gledatelj traži. MVC i MVVM dva su popularna dizajnerska obrasca u svijetu razvoja softvera.

Što je MVC?

MVC, kratica za Model-View-Controller, model je dizajnerskog dizajna koji se obično koristi za razvoj modernih korisničkih sučelja. MVC uzorak je u središtu modernog objektno-orijentiranog softvera koji je nastao iz objektno-orijentirane zajednice dizajna. Prvobitno je nazvana Thing-Model-View-Editor 1979. godine, ali je kasnije pojednostavljena i preimenovana u Model-View-Controller. Koristi se pretežno za dizajn i razvoj mobilnih i web aplikacija. Ona dijeli korisničko sučelje aplikacije na tri različita dijela: Model, View i Controller.

Model: Model predstavlja skup klasa koje opisuju podatke koje planirate koristiti u aplikaciji. Opisuje zajednički format podataka, ali može sadržavati poslovna pravila, pretvorbe, logiku provjere valjanosti i razne druge funkcije.

Pogled: Pogled predstavlja podatke koji će se prikazati iz modela. Ona određuje kako će se prikazati korisničko sučelje aplikacije. Model može imati više pregleda, ovisno o aplikaciji. Model pogleda, u dizajnerskom smislu, u osnovi prikazuje komponente UI kao što su HTML, jQuery i tako dalje.

kontrolor: Kontroler je središnji dio MVC aplikacije koji upravlja s komunikacijom od korisnika u obliku događaja, ukupnog protoka aplikacije i logike specifične za aplikaciju. Događaji se zatim pretvaraju u zahtjeve za uslugu i prenose na model ili prikaz. To je jedina komponenta putem koje korisnik komunicira sa sustavom.

Što je MVVM?

Model-View-ViewModel ili MVVM popularan je softverski arhitektonski obrazac koji se obično koristi za razvoj web aplikacija koje se mogu višekratno upotrijebiti i lako testirati. MVVM se temelji na MVC obrascu, ali se poboljšava na MVC modelu uvođenjem nove klase koja se zove ViewModel, a koja upravlja podacima specifičnim za vlasnički pregled. Osnovni cilj MVVM modela je istinsko odvajanje komponenata Model i View. Glavne komponente modela su: Model, View i ViewModel.

Model: Princip ostaje isti kao u MVC modelu. Model predstavlja poslovnu logiku i podatke i određuje kako se njima treba manipulirati.

Pogled: Model prikaza predstavlja podatke za prikaz, ali ne vrši nikakve manipulacije podacima. Prikaz je isti kao u MVC-u, osim što se za prikaz moraju postaviti vezivanja podataka, što se vrši dodavanjem ViewModel u vlasnički pregled..

ViewModel: Najvažnija je komponenta modela jer je dizajnirana za korištenje funkcija povezivanja podataka, što zapravo pomaže da se pogled odvoji od modela, a u isto vrijeme djeluje i kao kontrolor koji olakšava komunikaciju između komponenata View i Model.

Razlika između MVC i MVVM

Uzorak

- Model-View-Controller (MVC) je model dizajniranja aplikacija koji se obično koristi za razvoj modernih korisničkih sučelja. Ona dijeli korisničko sučelje aplikacije na tri različita dijela: Model, View i Controller. S druge strane, Model-View-ViewModel (MVVM) moderna je varijanta MVC modela koji se obično koristi za razvoj web-aplikacija za višekratnu upotrebu i lako testiranje. Glavne komponente MVVM modela su Model, View i ViewModel.

Vezivanje podataka

- Ključna značajka koja razlikuje MVVM od ostalih obrazaca dizajna softvera je povezivanje podataka, što je jednostavno mehanizam koji povezuje korisničko sučelje s poslovnom logikom. Ključna tehnologija koja povezuje Views sa njihovim ViewModelima koja osigurava da su modeli i svojstva usklađeni s prikazom u ViewModelu. To uklanja potrebu da se cijeli Model izloži na pogled.

kontrolor

- Ključna razlika između dva arhitektonska obrasca je ta što je u MVC-u, kontroler odgovoran za upravljanje komunikacijom između modela i pogleda koristeći događaje, dok je okvir sve teško dizanje u MVVM koristeći značajku koja se naziva vezanje podataka. ViewModel u MVVM pomaže da pogled ostane odvojen od modela, a istodobno djeluje i kao kontrolor koji olakšava komunikaciju između komponenata View i Model..

MVC vs. MVVM: Usporedni grafikon

Sažetak

Iako su i MVC i MVVM derivati ​​MVC modela, MVVM je moderna varijanta MVC modela koja uvodi novu klasu pod nazivom ViewModel koja upravlja podacima specifičnim za prikaz. Osnovni cilj MVVM modela je istinsko odvajanje komponenata Model i View. U MVC-u, kontroler je odgovoran za upravljanje komunikacijom između modela i pogleda. No, u MVVM modelu ViewModel pomaže da pogled ostane odvojen od modela i također djeluje kao kontroler kako bi se olakšala komunikacija između komponenata..