MVVM i MVP

Anonim

Svrha razvoja softvera je izgradnja rješenja koja rješavaju potrebe i probleme za korisnike i tvrtke. Da bi to postigli, različite tehnologije i obrasci arhitekture kao što su Model-View-ViewModel (MVVM) i Model-Pregled-Voditelj (MVP) su korišteni.

Kao i kod svega što se proizvodi, prvi je korak planiranje i dizajn. Proces dizajna softvera može biti specifikacija koja se temelji na preferiranom setu alata za tehnologiju i može obuhvatiti svu aktivnost od koncepcije do planiranja do implementacije do ažuriranja i izmjena.

Obuhvaća arhitektonski dizajn niske razine i visokih razina, temeljen na odabranim uzorcima arhitekture i izrađuje rješenja koja se mogu koristiti za ponovnu upotrebu pomoću uzoraka dizajna.

Struktura softverske aplikacije

Arhitektura softvera definira strukturu aplikacije koja zadovoljava tehničke, operativne i korisničke zahtjeve te se odnosi na način organiziranja i upravljanja kodom.

Odlučivanje o arhitekturi softverske aplikacije je ključno jer nije jednostavan, promjenjivi dio aplikacije koja je već razvijena; stoga se arhitektonski uzorak mora odlučiti prije početka programiranja.

Arhitektonski uzorci donekle se razlikuju od obrazaca dizajna jer je njihov opseg mnogo širi rješavajući više tehničkih problema kao što su performanse i ograničenja hardvera i visoka dostupnost. Primjeri različitih uzoraka arhitekture su MVC, MVVM i MVP.

S druge strane, obrasci dizajna formalizirani su najbolji postupci koji olakšavaju ponovno upotrebljiv objektno orijentirani razvoj i jednostavniji su za održavanje i promjenu od arhitekture aplikacije.

Arhitektura

Kontrolor vidnog modela (MVC) bio je jedan od prvih arhitektonskih uzoraka razvijenih za web aplikacije, stjecanje popularnosti od sredine do kraja devedesetih godina, osobito s Java zajednicom.

Noviji okviri, poput Django za Python i Rails (Ruby on Rails), snažno se usredotočuju na brzu implementaciju, zbog čega MVC preuzima tržišni udio kao veliku atrakciju u arhitektonskim uzorcima.

Tradicionalno, razvoj korisničkog sučelja sadržavao je puno koda za rješavanje složene logike pa su dizajnirane arhitekture za smanjenje koda na razini korisničkog sučelja (UI), čime se čini "čistijima" i rukovanje.

Dakle, uz MVC uzorak, web aplikacija se sastoji od

  • Model (podaci)
  • Pogled (sučelje za pregled i manipuliranje podacima)
  • kontrolor (operacije i radnje izvršene na podacima)

Model obrađuje podatke i poslovnu logiku i postoje Ne ovisnosti između Model i kontrolor ili Pogled.

Pogled prikazuje podatke korisniku u podržanom formatu i potrebnom rasporedu, a kada kontrolor prima zahtjeve korisnika (za dohvaćanje podataka), poziva relevantne resurse potrebne za dovršavanje zahtjeva.

Primijeni ovaj obrazac za izgradnju mrežnog spremišta knjiga.

Korisnici mogu pretraživati, pregledavati, registrirati i kupovati knjige, kao i upravljati svojim profilima i popisima knjiga. Kada korisnik klikne na kategoriju SCI-FI, sve povezane knjige trebaju biti prikazane kao dostupne.

kontroleri rukovati radnjama koje upravljaju knjigama (popis, dodavanje, pregled itd.). Može biti višestruko kontroleri s jednim glavnim kontrolor 'Usmjeravanje prometa'.

Za ovaj primjer, kontrolor naziva se controller_books.php i Model (npr., model_books.php) obrađuje podatke i logiku vezanu uz knjige.

Konačno, drugačije Posjeta bit će potrebno, primjerice, prilikom dodavanja knjiga na mrežnu košaricu ili prilikom pregledavanja pojedinosti knjige sa slikama i pregledima.

controller_books.php prima akciju (zahtjev korisnika) od glavne kontrolor (Npr index.php). controller_books.php analizira zahtjev i zove model_books.php (podaci) da biste vratili popis SCI-FI knjiga.

Odgovornost Model je pružiti te informacije koristeći bilo koju primijenjenu logiku (pomoću filtara za pretraživanje). kontrolor zatim preuzima podatke i prosljeđuje ih relevantnim Pogled (prikaz pretraživanja, prikaz ispisa, prikaz pojedinosti i sl.) i informacije se prikazuju (preko Pogled) korisniku koji je pokrenuo zahtjev.

To su osnove obrasca MVC-a, koji je razvio varijacije mriještenja uzoraka arhitekture, kao što su Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Hierarchical-Model-View-Controller (HMVC) i Model-View-adapter (MVA) itd.

MVP uzorak

Model-Pregled-Voditelj (MVP)

MVP uzorak je već neko vrijeme i varijanta MVC-a. Namijenjen je posebno za automatizaciju testova, a cilj je bio povećati količinu koda koji se može testirati automatizacijom, a uzorak rješava neke probleme s prezentacijskim slojem, izdvajajući poslovnu logiku iz korisničkog sučelja.

Zaslon je prikaz, podaci koje prikazuje je model, a predavač zajedno povezuje dva.

MVP obuhvaća sljedeće komponente s odvojenim odgovornostima:

  • Model (definira podatke koji će biti prikazani)
  • Pogled (prikazuje podatke iz modela i usmjerava zahtjeve korisnika predavaču).
  • predlagač (interakcija između prikaza i modela i povezivanje ih zajedno)

Pogled (web stranica) prikazuje i upravlja kontrolama stranice prosljeđivanjem događaja (zahtjeva korisnika) na predlagač koji su pokrenuti u Pogled.

predlagač odgovara na te događaje čitanjem i ažuriranjem Model za promjenu Pogled i stoga, prezentera odgovornost je vezati Model i Pogled.

Nakon što pogledamo MVC i MVP običaj ima i odvojene odgovornosti za svaku komponentu i oni potiču odvajanje između Pogled (UI) i Model (podaci). Značajne razlike između tih obrazaca više su vidljive u načinu na koji se obrasci primjenjuju.

MVP može biti složen uzorak koji će se provesti za napredna rješenja, ali zasigurno ima velike prednosti ako se provodi kao dobro osmišljeno rješenje, iako ne mora nužno biti odgovarajući izbor za jednostavna rješenja.

MVVM uzorak

Model-View-ViewModel (MVVM)

MVVM uzorak je posebno dizajniran za Windows Presentation Foundation (WPF) i Microsoft Silverlight platforme, a može se koristiti na svim XAML [i] platforme.

WPF je Microsoftov sustav koji čini korisnička sučelja u programima temeljenim na sustavu Windows i prvi put je objavljen u.NET Framework 3.0.

MVVM je pročišćen iz MVC i u ovom uzorku, Pogled aktivan je s ponašanjem, događajima i obvezujućim podacima, a Pogled sinkronizira se s ViewModel (što omogućuje razdvajanje prezentacije i izlaže metode i naredbe za upravljanje i manipulaciju Model.

MVVM sastoji se od tri osnovne komponente:

  • Model (predstavlja podatke s validacijom i poslovnom logikom)
  • Pogled (Pogled je odgovoran za definiranje strukture, izgleda i izgleda onoga što korisnik vidi na zaslonu. Idealno, prikaz se definira isključivo pomoću XAML-a, s ograničenim kodom koji ne sadrži poslovnu logiku. vezanje između Pogled i ViewModel kako bi se prikazale mogućnosti usklađivanja Modela i ViewModela s prikazom)
  • ViewModel (razdvaja Pogled iz modela i izlaže metode i naredbe za manipuliranje podacima (Model).

Pogled prima podatke iz ViewModel (putem vezivanja podataka i metoda), a na izvođenju vremena, Pogled promijenit će se kada reagirate na događaje u ViewModel.

ViewModel posreduje između Pogled i Model i rukuje Pogled logika. Surađuje s programom Model - uzimanje podataka iz Model i predstaviti ga Pogled prikazati.

Ove komponente su međusobno odvojene i omogućuju veću fleksibilnost da rade na njima samostalno, izoliraju testiranje uređaja i zamjenjuju ih bez utjecaja na bilo koju drugu komponentu.

Ova struktura omogućuje Model i druge komponente kako bi se razvile samostalno, omogućujući razvojnim programerima istodobno rad na različitim aspektima rješenja. Na primjer, gdje dizajneri rade na Pogled, jednostavno stvaraju uzorke podataka bez potrebe za pristupom ostalim komponentama. To olakšava jednostavno preoblikovanje korisničkog sučelja kao Pogled implementiran je u XAML.

Kao što je prije spomenuto MVP, jednostavna rješenja ne trebaju arhitekture i dizajnerske uzorke, kao što je "Hello World!" previše osnovno za praćenje bilo kojeg uzorka; međutim, kada se uvedu više značajki, funkcija i komponenti, povećava se složenost aplikacije i time i količinu koda za upravljanje.

U sažetku

Od početka razvoja korisničkog sučelja, dizajnni obrasci postaju sve popularniji kako bi proces razvoja bio lakši, aplikacije su skalabilnije i olakšava lakše testiranje.

Ilustrirana razlika između MVP i MVVM uzoraka:

  • U oba MVP i MVVM, Pogled je ulazna točka za aplikaciju
  • U MVP, postoji jedan-na-jedan mapiranje između Pogled i predlagač, gdje je u MVVM, odnos je jedan na mnoge između Pogled i ViewModel.
  • MVP koristi se prvenstveno za Windows Forms i Windows Phone aplikacije i MVVM je dizajniran za Silverlight, WPF, Knockout / AngularJS itd.