MVC, MVP, MVVM: Koje odabrati?

MVC, MVP, MVVM: Koje odabrati?

Suvremene aplikacije trebaju toliko raznolike značajke da je proces njihovog razvoja porastao u veličini i složenosti. Kao pomoć, možete upotrijebiti uzorak arhitektonskog dizajna. Oni podržavaju izgradnju aplikacija koje je lako testirati i održavati.





Tri najpopularnija uzorka dizajna su MVC, MVP i MVVM. MVC označava model, prikaz i kontroler, dok MVP označava model, prikaz i prezenter, a MVVM označava model, pogled i model prikaza.





Arhitektonski i dizajnerski uzorci

Arhitektonski obrazac

Arhitektonski obrazac pojašnjava i definira neke ključne komponente softverske arhitekture. Iako arhitektonski obrazac prenosi sliku sustava, to nije arhitektura . Zapravo, to je općenito i višekratno rješenje za problem koji se često pojavljuje u arhitekturi softvera u određenom kontekstu.





Uzorak dizajna

Uzorak dizajna je formalizirana najbolja praksa koju možete koristiti za rješavanje uobičajenih problema prilikom dizajniranja aplikacije ili sustava.

Razlika između arhitektonskog i dizajnerskog uzorka

Počnimo s uobičajenim izrazom — uzorkom. U softveru, obrazac je ponavljajuće svojstvo koje vam omogućuje rastavljanje ogromne i složene strukture na manje, jednostavnije komponente. Ovaj obrazac možete koristiti za izradu općeg rješenja za klasu problema.



Na svakoj razini razvoja softvera koristit ćete različite alate. Na manjim razinama ovi su alati obrasci dizajna. Arhitektonski uzorci postoje na većim razinama, i paradigme programiranja na razini provedbe.

Zašto su nam potrebni obrasci arhitektonskog dizajna?

Tijekom razvoja softvera možete koristiti obrasce arhitektonskog dizajna za rješavanje uobičajenih problema. Dobra arhitektura također vam može pomoći da:





  • Podijelite složene zadatke na jednostavnije.
  • Smanjite greške.
  • Izradite kod koji se može testirati i održavati.

Ali bez arhitektonskog obrasca, mogli biste se suočiti s poteškoćama u održavanju poslovne logike svoje aplikacije.

Model, View, ViewModel, Controller i Presenter

Prije nego što pogledate svaki uzorak, evo pojmova koji ih čine:





kôd pogreške disney centra za pomoć 83
  • Model pohranjuje podatke i izravno komunicira s bazom podataka. Model je dio koji predstavlja vaše podatke i logiku aplikacije. Definira poslovna pravila koja upravljaju rukovanjem, modificiranjem ili obradom podataka.
  • Pogled prikazuje podatke modela i odgovoran je za prikaz podataka u korisničkom sučelju.
  • ViewModel ekskluzivan je za MVVM obrazac. Ovo je apstrakcija sloja prikaza i također djeluje kao omotač za podatke modela.
  • Kontrolor je komponenta koja integrira pogled i model.
  • Prezenter je komponenta koja postoji samo u MVP modelu. Presenter dobiva ulaz od komponente pogleda i obrađuje podatke uz pomoć modela.

MVC, MVP i MVVM uzorci

Model-View-Controller Pattern

The MVC arhitektonski uzorak je bio prvi, a danas je popularan u području web aplikacija. Predstavljen je 1970-ih. Ovaj obrazac omogućuje vam izradu aplikacije oko razdvajanja koncerna (SoC). Olakšava napor koji vam je potreban za testiranje, održavanje i razvoj vaše aplikacije.

U MVC uzorku, model ne razumije pogled ili kontroler. Promatrač modela će primiti upozorenje kad god dođe do promjene u pogledu i kontroleru. Kontroler pomaže procesu usmjeravanja da poveže model s relevantnim pogledom.

Neke od prednosti MVC uzorka su:

  • Razdvajanje briga (fokusiranije).
  • Olakšava testiranje i upravljanje kodom.
  • Promiče odvajanje slojeva aplikacije.
  • Bolja organizacija koda i mogućnost ponovne upotrebe.

Evo kako radi MVC:

  Slika dijagrama koji ilustrira kako radi MVC

Zbog SoC-a, MVC može smanjiti veličinu koda i napraviti dobar kod koji je čist i njime se može upravljati.

Model-View-Presenter Pattern

MVP uzorak dijeli dvije komponente s MVC-om: model i pogled. Zamjenjuje kontroler prezenterom. Prezentator — kao što mu ime govori — koristi se za predstavljanje nečega. Omogućuje vam lakše ismijavanje pogleda.

U MVP-u prezenter ima funkciju 'srednjeg čovjeka' jer je sva logika prezentacije gurnuta na njega. Prikaz i izlagač u MVP-u također su neovisni jedan o drugom i međusobno djeluju putem sučelja.

Evo ilustracije kako funkcionira MVP uzorak:

  Slika dijagrama koji ilustrira kako radi MVP

Prezenter prima unos od korisnika putem prikaza. Zatim obrađuje radnje korisnika uz pomoć modela, prosljeđujući rezultate natrag u prikaz. Prezenter komunicira s pogledom preko sučelja.

Model-View-ViewModel Pattern

MVVM je moderna evolucija MVC-a. Glavni cilj MVVM-a je osigurati jasno odvajanje između logike domene i prezentacijskog sloja. MVVM podržava dvosmjerno povezivanje podataka između pogleda i modela prikaza.

MVVM uzorak vam omogućuje da odvojite pogled i model vašeg koda. To znači da kada se model promijeni, pogled ne treba, i obrnuto. Koristeći model prikaza, možete testirati jedinicu i testirati svoje logičko ponašanje bez uključivanja vašeg pogleda.

Evo ilustracije kako MVVM radi:

  Slika dijagrama koji ilustrira kako radi MVVM

Kada koristiti MVC, MVP i MVVM

Sada kada ste naučili o svakom uzorku, saznajte kada ih koristiti.

Kada koristiti MVC

MVC je jednostavno implementacija razdvajanja koncerna. Ako vaša aplikacija treba odvojiti podatke (model), obradu podataka (kontroler) i prezentaciju podataka (prikaz), MVC će dobro funkcionirati. MVC također dobro služi u aplikaciji gdje se izvor podataka i/ili prezentacija podataka mogu promijeniti u bilo kojem trenutku.

Kada koristiti MVP

MVP možete koristiti kada vaša aplikacija ima dvosmjerni protok. Ako korisničke interakcije trebaju zatražiti nešto od modela, a rezultat tog zahtjeva će odmah promijeniti korisničko sučelje, razmislite o MVP-u.

Kada koristiti MVVM

Htjet ćete koristiti MVVM kada:

koja usluga dostave hrane najviše plaća
  • Morate podijeliti projekt s dizajnerom, a rad na dizajnu i razvoju može se odvijati neovisno.
  • Potrebno vam je jedinično testiranje za vaša rješenja.
  • Morate imati komponente koje se mogu ponovno koristiti, unutar i među projektima u vašoj organizaciji.
  • Želite više fleksibilnosti za promjenu pogleda bez potrebe za refaktoriranjem druge logike u bazi koda.

Koji uzorak odabrati?

Glavni razlog za korištenje uzorka dizajna je smanjenje složenosti. To možete učiniti smanjenjem ukupne složenosti ili zamjenom nepoznate složenosti poznatom. Ako uzorak dizajna ne može smanjiti složenost ni na jedan od ta dva načina, nemojte koristiti ništa od toga; neće dodati nikakvu vrijednost.

Ako ste doista sigurni da biste trebali koristiti uzorak dizajna, pokušajte napraviti kontrolni popis. Temeljite se na situacijama koje ste ovdje vidjeli i odaberite ono što najbolje odgovara vašem projektu.