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
- MVC (Model-View-Controller) razdvaja podatke aplikacije, korisničko sučelje i upravljačku logiku u tri različite komponente, promičući modularnost.
- MVP (Model-View-Presenter) također odvaja ove probleme, ali dodaje komponentu predstavljača za upravljanje komunikacijom između pogleda i modela.
- 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 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 usporedbe | VMC | MVP |
---|---|---|
Značenje | MVC je kratica za Model-View-Controller. | MVP je kratica za Model-View-Presenter. |
Ulazna točka | Ulazna točka ovoga je Controller. | Ulazna točka ovoga je Pogled. |
Odnos pogleda i modela | Ova aplikacija slijedi modularna načela kao i načela pojedinačne odgovornosti. | Ovdje je Pogled svjestan Prezentera. |
Slijedeći modularni | Ova 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.
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.
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
- MVC je kratica za Model-View-Controller, dok je MVP kratica za Model-View-Presenter.
- Ulazna točka za MVC je Controller, ali u slučaju MVP-a, ulazna točka je View.
- U MVC aplikaciji View nema nikakvih saznanja o Controlleru, a naprotiv, u MVP-u View ima dobru svijest o Presenteru.
- U MVC-u, slojevi koda su usko povezani, ali u MVP-u, slojevi koda su labavo povezani.
- 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.
- MVC se ne pridržava načela jedinstvene odgovornosti, ali ga MVP slijedi.
- https://ieeexplore.ieee.org/abstract/document/5567323/
- https://research.tue.nl/files/48628529/Lou_2016.pdf
Zadnje ažuriranje: 11. lipnja 2023
Sandeep Bhandari ima diplomu inženjera računala na Sveučilištu Thapar (2006.). Ima 20 godina iskustva u području tehnologije. Ima veliki interes za razna tehnička područja, uključujući sustave baza podataka, računalne mreže i programiranje. Više o njemu možete pročitati na njegovom bio stranica.
Svaka čast piscu što je razbio složenost MVC-a i MVP-a na tako probavljiv način.
Ne mogu se više složiti! Tablica MVC nasuprot MVP bila je od posebne pomoći u razumijevanju nijansi između to dvoje. Odličan posao.
Članak je uspio čak i složenije tehničke aspekte softverske arhitekture učiniti dostupnima. Svaka čast autoru.
Raščlamba MVC-a i MVP-a bila je sveobuhvatna i zanimljiva. Vrlo hvale vrijedan rad.
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.
Sjajno je vidjeti detaljno istraživanje MVC-a i MVP-a, ističući njihove prednosti i nedostatke. Sveukupno dobro istražen rad.
Š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.
Osvježenje je vidjeti pronicljivu raspravu o uzorcima softverske arhitekture. Usporedba između MVC i MVP bila je prosvjetljujuća.
Potpuno se slažem. Struktura MVP-a omogućuje učinkovitije testiranje i rješavanje problema.
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.