MVC protiv MVP: razlika i usporedba

Androidu je potreban obrazac softverske arhitekture dok se razvija. MVC i MVP naširoko su korišteni obrasci koji programerima daju priliku da moduliraju projektne datoteke i osiguraju pokrivenost kodova.

To programeru olakšava posao.

Ključni za poneti

  1. MVC (Model-View-Controller) razdvaja podatke aplikacije, korisničko sučelje i upravljačku logiku u tri različite komponente, promičući modularnost.
  2. MVP (Model-View-Presenter) također odvaja ove probleme, ali dodaje komponentu predstavljača za upravljanje komunikacijom između pogleda i modela.
  3. MVC je prikladniji za veće aplikacije sa složenim korisničkim interakcijama, dok MVP dobro radi za manje projekte s jednostavnim sučeljima.

VMC vs MVP 

VMC je arhitektonski obrazac koji dijeli aplikaciju na tri glavne komponente: model, pogled i kontroler. Model predstavlja podatke i poslovnu logiku aplikacije. MVP je još jedan arhitektonski obrazac sličan MVC-u, ali s nekoliko ključnih razlika. MVP model i dalje predstavlja podatke i poslovnu logiku aplikacije.

MVC protiv MVP

MVC je softverska struktura koja ima kontrolere kao ulaznu točku. Sloj pogleda implementiran je kao jedna jedinica ili klasa.

Sva tri prikazana sloja su usko povezana; stoga unošenje bilo kakvih promjena može biti komplicirano.

Možemo reći da je MVC obrazac inspirirao MVP obrazac. Međutim, MVP je a UI obrazac prezentacije. Ovo ne opisuje cijeli postupak, ali objašnjava strukturu View.

Pogled čini elemente korisničkog sučelja, a svi njegovi elementi ostaju labavo zajedno.

Tabela za usporedbu

Parametri usporedbeVMCMVP
Značenje MVC je kratica za Model-View-Controller.MVP je kratica za Model-View-Presenter.
Ulazna točkaUlazna točka ovoga je Controller.Ulazna točka ovoga je Pogled.
Odnos pogleda i modelaOva aplikacija slijedi modularna načela kao i načela pojedinačne odgovornosti.Ovdje je Pogled svjestan Prezentera.
Slijedeći modularniOva aplikacija ne slijedi nikakvu modularnost niti se pridržava načela pojedinačne odgovornosti.Ova aplikacija slijedi modularna načela kao i načela pojedinačne odgovornosti.
Modifikacija Ovdje je teško napraviti izmjene.Ovdje unošenje promjena i modificiranje podataka nije mnogo komplicirano.

Što je MVC?

MVC uzorak podrazumijeva Model-View-Controller. Kodeks je podijeljen u ova tri dijela. Kada programeri stvaraju datoteku za aplikaciju, moraju odabrati jedan od slojeva.

Također pročitajte:  Kako očistiti predmemoriju na Android telefonima: brzi vodič

Prvi sloj, model, odgovoran je za pohranjivanje podataka aplikacije. Uopće nije svjestan sučelja. Model ima zadatak komunicirati s bazom podataka i mrežnim slojevima.

Pogled je korisničko sučelje ili sloj korisničkog sučelja aplikacije. Sadrži komponente koje su vidljive na ekranu. Sve vizualizirane podatke koji su spremljeni u modelu osigurava View.

Korisnici mogu komunicirati s ovim. Posljednji sloj, Controller, razvijen je za povezivanje modela i pogleda. Prikuplja ponašanje korisnika i prema tome ažurira model.

Nekoliko negativnih točaka MVC-a ponekad otežava posao. Ovdje su pogled i model usko povezani.

Stoga zahtjevi pogleda mogu utjecati na model i degradirati poslovnu logiku. U isto vrijeme, ova bliska povezanost čini testiranje jedinice View izazovnim.

Što je MVP?

MVP uzorak označava Model-View-predlagač. To je bolja verzija MVC-a, a korištenjem MVP-a programer može učinkovito strukturirati poduzete projektne kodove.

Karakteristike MVP-a čine ga vrlo popularnim među programerima. Njegova čista i održavana baza podataka koda i mogućnost testiranja čine ga vrlo korisnim.

Također ima tri komponente. Prvi je sloj modela koji je dizajniran za pohranu podataka. Održava pravila logike domene i komunicira s bazom podataka i mrežnim slojevima.

Sljedeći sloj, Pogled, je korisničko sučelje ove aplikacije. Ovaj sloj pruža svu vizualizaciju podataka zajedno s praćenjem radnji korisnika kako bi informirao izlagača.

Također pročitajte:  WhatsApp web i stolno računalo: brzi vodič za velike zaslone

Posljednji sloj je Presenter, koji donosi podatke iz modela, koristi UI logiku, a zatim određuje što treba prikazati. Korisnici mogu unositi podatke u View, a MVP u skladu s tim organizira stanje View-a.

Međutim, MVP nije oslobođen svih problema. Kontroler MVP-a se uklanja.

Kao rezultat toga, kako bi se nadoknadio nedostatak kontrolera, Prezenter se mora baviti protokom. Dakle, u konačnici, izlagač uspijeva ažurirati model i predstaviti ga.

Glavne razlike između MVC i MVP

  1. MVC je kratica za Model-View-Controller, dok je MVP kratica za Model-View-Presenter.
  2. Ulazna točka za MVC je Controller, ali u slučaju MVP-a, ulazna točka je View.
  3. U MVC aplikaciji View nema nikakvih saznanja o Controlleru, a naprotiv, u MVP-u View ima dobru svijest o Presenteru.
  4. U MVC-u, slojevi koda su usko povezani, ali u MVP-u, slojevi koda su labavo povezani.
  5. Budući da MVC nosi usko povezane slojeve koda, nije lako modificirati njegove podatke, ali u slučaju MVP-a, lako je napraviti promjene jer su slojevi koda labavo povezani.
  6. MVC se ne pridržava načela jedinstvene odgovornosti, ali ga MVP slijedi.
Reference
  1. https://ieeexplore.ieee.org/abstract/document/5567323/
  2. https://research.tue.nl/files/48628529/Lou_2016.pdf

Zadnje ažuriranje: 11. lipnja 2023

točka 1
Jedan zahtjev?

Uložio sam mnogo truda u pisanje ovog posta na blogu kako bih vam pružio vrijednost. Bit će mi od velike pomoći ako razmislite o tome da to podijelite na društvenim medijima ili sa svojim prijateljima/obitelji. DIJELJENJE JE ♥️

10 misli o “MVC protiv MVP: razlika i usporedba”

  1. Ovo je bilo nevjerojatno informativno. Nisam znao da su razlike između MVC i MVP tako jasne i jasne. Svakako ću primijeniti ova načela u svojoj softverskoj arhitekturi.

    odgovor
  2. Sjajno je vidjeti detaljno istraživanje MVC-a i MVP-a, ističući njihove prednosti i nedostatke. Sveukupno dobro istražen rad.

    odgovor
  3. Šteta je što bliska povezanost MVC obrasca između pogleda i modela čini testiranje jedinica izazovnim, posebno za složenije aplikacije. Labava spojka MVP-a prilično učinkovito rješava ovaj problem.

    odgovor
  4. Uz dužno poštovanje, ne slažem se da je MVC prikladniji za veće aplikacije. Fleksibilnost dizajna MVP-a može biti korisna i za veće projekte.

    odgovor

Ostavite komentar

Želite li spremiti ovaj članak za kasnije? Kliknite srce u donjem desnom kutu da biste ga spremili u svoj okvir za članke!