MVC vs MVVM - Ero niiden välillä

Tärkeimmät erot MVC:n ja MVVM:n välillä

  • MVC-kehys on arkkitehtoninen malli, joka jakaa sovelluksen kolmeen loogiseen pääkomponenttiin: Malli, Näkymä ja Ohjain. Toisaalta MVVM mahdollistaa graafisen käyttöliittymän kehittämisen erottamisen merkintäkielen tai GUI-koodin avulla.
  • MVC:ssä ohjain on sovelluksen sisääntulopiste, kun taas MVVM:ssä näkymä on sovelluksen sisääntulopiste.
  • MVC Model -komponenttia voidaan testata erikseen käyttäjästä, kun taas MVVM on helppo tehdä erilliseen yksikkötestaukseen ja koodi on tapahtumaohjattu.
  • MVC-arkkitehtuuri luo "yksi moneen" -suhteen ohjaimen ja näkymän välille, kun taas MVVM-arkkitehtuuri määrittelee "yksi moneen" -suhteen näkymän ja ViewModelin välille.

Ero MVVM:n ja MVC:n välillä

Mikä on MVC?

- MVC Framework on arkkitehtoninen malli, joka jakaa sovellukset kolmeen loogiseen pääkomponenttiin: Malli, Näkymä ja Ohjain. Tästä johtuu lyhenne MVC. Täysimuotoinen MVC on Model View Controller.

Tässä arkkitehtuurissa komponentti on rakennettu käsittelemään sovelluksen tiettyjä kehitysnäkökohtia. MVC erottaa liiketoimintalogiikan ja esityskerroksen toisistaan. Tätä arkkitehtonista mallia käytetään pääasiassa työpöydän graafisissa käyttöliittymissä (GUI).

Mikä on MVVM?

MVVM-arkkitehtuuri mahdollistaa graafisen käyttöliittymän kehittämisen erottamisen merkintäkielen tai GUI-koodin avulla. MVVM:n täysi muoto on Model-View-ViewModel.

MVVM:n näkymämalli on arvonmuunnin, mikä tarkoittaa, että näkymämallin vastuulla on paljastaa mallin dataobjektit siten, että objektit ovat helposti hallittavissa ja esitettävissä.

MVC malli


MVC Archirakenne
MVC Archirakenne

Kolme tärkeää MVC-komponenttia ovat:

  • Malli: Se sisältää kaikki tiedot ja siihen liittyvän logiikan.
  • Katso: Esittää tietoja käyttäjälle tai käsittelee käyttäjän vuorovaikutusta.
  • ohjain: Rajapinta Model- ja View-komponenttien välillä.

Katsotaanpa jokainen näistä komponenteista yksityiskohtaisesti:

Malli

Mallikomponentti tallentaa dataa ja siihen liittyvää logiikkaa. Se edustaa dataa, jota siirretään ohjaimen komponenttien tai muun asiaan liittyvän liiketoimintalogiikan välillä.

Esimerkiksi Controller-objekti auttaa sinua hakemaan asiakastiedot tietokannasta. Se käsittelee tietoja ja lähettää ne takaisin tietokantaan tai käyttää sitä samojen tietojen hahmontamiseen.

Näytä

Näkymä on se osa sovelluksesta, joka edustaa tietojen esittämistä. Näkymät luodaan mallitiedoista kerätyistä tiedoista. Näkymä pyytää mallia antamaan tietoja, jotta se lähettää tulosteen uudelleen 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, avattavat valikot 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 kehottaa mallia ja näkymää muuttumaan tarpeen mukaan.

Ohjain lähettää mallille komentoja sen tilan päivittämiseksi (esim. tietyn asiakirjan tallentaminen). Ohjain lähettää myös komennot siihen liittyvään näkymään näkymän esityksen muuttamiseksi (esimerkiksi tietyn asiakirjan vierittäminen).

MVVM-kuvio

Tässä on malli MVVM:lle:

MVVM Archirakenne
MVVM Archirakenne

MVVM-arkkitehtuuri tarjoaa kaksisuuntaisen tiedonsidon näkymän ja näkymämallin välillä. Se auttaa myös automatisoimaan muutosten etenemisen View-Modelin sisällä näkymään. Näkymämalli käyttää tarkkailijakuviota muutosten tekemiseen näkymämalliin.

Katsotaanpa tämä komponentti toisilleen yksityiskohtaisesti:

Malli

Malli tallentaa dataa ja siihen liittyvää logiikkaa. Se edustaa tietoja, joita siirretään ohjaimen komponenttien tai muun asiaan liittyvän liiketoimintalogiikan välillä.

Esimerkiksi Controller-objekti hakee opiskelijatiedot koulun tietokannasta. Se käsittelee tietoja ja lähettää ne takaisin tietokantaan tai käyttää sitä samojen tietojen hahmontamiseen.

Näytä

Näkymä tarkoittaa käyttöliittymäkomponentteja, kuten HTML, CSS, jQuery jne

kuvionäkymä on vastuussa Rekisterinpitäjältä tuloksena saatujen tietojen näyttämisestä. Tämä näkymä on myös muutettu malli(t) käyttöliittymäksi (UI).

Näytä malli

Näkymämalli vastaa toimintojen, komentojen ja menetelmien esittämisestä, jotka tukevat näkymän tilaa. Se on myös vastuussa mallin käyttämisestä ja tapahtumien aktivoimisesta näkymässä.

Ero MVC:n ja MVVM:n välillä Archirakenne

Tässä on tärkeä ero MVVM:n ja MVC:n välillä

MVC (mallinäkymäohjain) MVVM (mallinäkymän näkymämalli)
Ohjain on sovelluksen sisääntulopiste. Näkymä on sovelluksen sisääntulokohta.
Ohjaimen ja näkymän välinen suhde yhdestä moneen. Yksi tai useampi suhde View & View Modelin välillä.
Näkymä Ei viittaa ohjaimeen Näkymässä on viittauksia näkymämalliin.
MVC on vanha malli MVVM on suhteellisen uusi malli.
Tätä mallia on vaikea lukea, muuttaa, yksikkötestata ja käyttää uudelleen Virheenkorjausprosessi on monimutkainen, kun meillä on monimutkaisia ​​datasidoksia.
MVC Model -komponentti voidaan testata erikseen käyttäjästä Helppo erillisen yksikön testaus ja koodi on tapahtumaohjattu.

MVC:n ominaisuudet

Tässä on MVC:n tärkeitä ominaisuuksia:

  • Helppo ja kitkaton testattavuus. Erittäin testattava, laajennettava ja liitettävä kehys
  • Voit myös hyödyntää olemassa olevia ASP.NETin, Djangon, JSP:n jne. tarjoamia ominaisuuksia.
  • Se tarjoaa täyden hallinnan HTML-koodistasi ja URL-osoitteistasi.
  • Se tukee testilähtöistä kehitystä (TDD)
  • Tämä arkkitehtuuri tarjoaa logiikan erottelun
  • Mahdollistaa SEO-ystävällisten URL-osoitteiden reitityksen.
  • Tarjoaa kartoituksen ymmärrettävien ja haettavissa olevien URL-osoitteiden saamiseksi.

MVVM:n ominaisuudet

Tässä on MVVM-arkkitehtuurin ominaisuuksia:

  • MVVM on kirjoitettu työpöytäsovelluksille, joissa on tiedonsidontaominaisuudet – XAML ja INotifyPropertyChanged-liitäntä
  • Jos haluat tehdä muutoksia näkymämalliin, näkymämalli käyttää tarkkailijakuviota.
  • MVVM-mallia käyttävät enimmäkseen WPF, Silverlight, nRoute jne.

MVC:n edut

Tässä on MVC:n edut/edut

  • Helpompi tuki uudentyyppisille asiakkaille
  • Eri komponenttien kehitys voidaan suorittaa rinnakkain.
  • Se välttää monimutkaisuuden jakamalla sovelluksen erillisiin (MVC) yksiköihin
  • Se käyttää vain etuohjainkuviota, joka käsittelee verkkosovelluspyynnöt yhdellä ohjaimella.
  • Tarjoaa parhaan tuen testipohjaiselle kehitykselle
  • Se toimii hyvin verkkosovelluksissa, joita tukevat suuret web-suunnittelijat ja -kehittäjät.
  • Se tarjoaa huolenaiheiden selkeän erottelun (SoC).
  • Kaikki luokitellut ja objektit ovat toisistaan ​​riippumattomia, joten voit testata niitä erikseen.
  • MVC mahdollistaa toisiinsa liittyvien toimintojen loogisen ryhmittelyn ohjaimella.

MVVM:n edut

Tässä on MVVM:n edut/edut

  • Liiketoiminnan logiikka on irrotettu Ul
  • Helppo huoltaa ja testata
  • Helppokäyttöiset komponentit uudelleen
  • Löyhästi kytketty arkkitehtuuri: MVVM tekee sovellusarkkitehtuuristasi yhtä löyhästi kytketyn.
  • Voit kirjoittaa yksikkötestitapauksia sekä näkymämallille että mallitasolle ilman, että sinun tarvitsee viitata näkymään.

MVC:n haitat

Tässä on MVC:n haitat / haitat

  • Liiketoimintalogiikka sekoitetaan Ul
  • Vaikea käyttää uudelleen ja toteuttaa testejä
  • 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.

MVVM:n haitat

Tässä on MVVM:n haitat / haitat

  • Useiden koodien ylläpito ohjaimessa
  • Jotkut ihmiset ajattelevat, että MVVM-arkkitehtuurin yksinkertaiset käyttöliittymät voivat olla ylivoimaisia.
  • Ei tarjoaa tiiviin kytkennän näkymän ja näkymämallin välillä