Download as pdf or txt
Download as pdf or txt
You are on page 1of 26

PROJEKTOVANJE

INFORMACIONIH SISTEMA

Prezentacioni paterni
SADRŽAJ
2

 Uvod: paterni, princip podele odgovornosti,


prezentacioni paterni
 Klasičan MVC
 MVC Model 2 (sa isturenim kontrolorem)
 MVP:
 Nadzorni prezenter
 Pasivni pogled

 PM
 MVVM
UVOD: PATERNI
3

 Paterni omogućavaju primenu isprobanih i


proverenih opštih rešenja (arhitektura, dizajn,
implementacija) prilikom razvoja poslovnih aplikacija

 Dizajn paterni pružaju pristup potvrđenim


metodologijama za rešavanje različitih problema,
čime omogućavaju korišćenje kolektivnog znanja i
iskustva
UVOD: PRINCIP PODELE
4
ODGOVORNOSTI

 Princip podele odgovornosti: podeliti aplikaciju tako da


joj se sastavni delovi što manje preklapaju u pogledu
funkcionalnosti

 Ovaj princip se najpre primenjuje pri projektovanju same


aplikacije koja se u skladu sa njim razvija kao višeslojna
arhitektura sastavljena od prezentacionog sloja, sloja
poslovne logike, sloja za pristup podacima itd.

 Zatim se ovaj princip primenjuje i na pojedinačne slojeve


UVOD: PREZENTACIONI PATERNI
5

 Osnovni zadatak većine dizajn paterna vezanih za


prezentacioni sloj je jasno razdvajanje kôda koji prikazuje
korisnički interfejs i prima interakcije korisnika od kôda koji se
bavi logikom prezentacije

 Postoji veliki broj paterna koji su primenjivi za prezentacioni


sloj aplikacije, neki od njih su: Autonomous View, MVC, MVP,
PM

 Popularnost prezentacvionih paterna proističe iz:


 Olakšan razvoj i održavanje aplikacija uvođenjem komponenti
 Lakše sprovođenje testova nad aplikacijama
UVOD: PREZENTACIONI PATERNI
6

 Zajedničko im je da daju organizaciju prezentacionog


sloja u smislu načina podele njegove odgovornosti

 Međusobno se razlikuju u načinu podele te


odgovornosti u komponente i načinu međusobne
interakcije tih komponenti
PREZENTACIONI PATERNI: OSNOVNE
7
ODGOVORNOSTI

 Osnovne odgovornosti prezentacionog sloja se odnose


na:
 Stanje - predstavlja tekuću sliku podataka na korisničkom
intefejsu
 Logiku - predstavlja ponašanje vezano za prikaz podataka
i manipulaciju tog prikaza
 Sinhronizaciju – podaci kojie se prikazuju na korisničkom
interfejsu treba da budu u skladu sa podacima u
domenskom modelu. Korisnički interfejs treba da sinhronizuje
podatke između elemenata prezentacionog sloja i
domenskih objekata
PREZENTACIONI PATERNI: ULOGA
8
MODELA

 Ono što je zajedničko svim razmatranim prezentacionim


paternima je da Model upravlja ponašanjem, stanjima i
podacima aplikacionog domena
 On obuhvata podatke i poslovnu logiku, tj. aplikacionu logiku
vezanu za učitavanje i upravljanje tim podacima i zadužen je
za poslovna pravila datog koncepta, za validaciju,
podrazumevane vrednosti, vrednosti koje su izračunavaju i
slično
 Model ne zna kako će biti prikazan niti ažuriran.
 Razlog za odvajanje Modela u zasebnu komponentu je
eliminacija ponavljanja kôda i omogućavanje njegovog
ponovnog korišćenja
Klasičan MVC (Model-View-
9
Controller)

Izvor [2]
Klasičan MVC (Model-View-
10
Controller)
 Pogled: upravlja prikazom podataka i zapravo predstavlja vizuelnu
reprezentaciju Modela. Zadužen je za renderovanje elemenata
korisničkog interfejsa i trebalo bi da sadrži što je moguće manje
logike

 Kontroler: zadužen za reagovanje na akcije korisničkog interfejsa.


Povezuje korisnika i aplikaciju time što omogućava interakciju
između korisnika sa jedne strane i ekrana i podataka sa druge tj.
interpretira unose korisnika i informiše Model i/ili Pogled o
potrebnim promenama

 Kontroleri su jednostavne komponente koji se bave obradom


događaja vezanih za određeni Pogled i koje su zadužene za obradu i
rutiranje promena
Klasičan MVC (Model-View-
11
Controller)

Izvor [1]
MVC Model 2 sa isturenim
12
kontrolorem (Front Controller)

Izvor [1]
MVC Model 2 sa isturenim
13
kontrolorem (Front Controller)

 Glavna razlika u odnosu na klasičan MVC: Ne postoji


direktna veza između Pogleda i Modela

 Model u ovom paternu nije tipičan poslovni entitet ili


poslovna logika, već je pre ViewModel koja pamti stanje
Pogleda

 Kontroler je zadužen za ažuriranje modela

 Ovaj patern je prilagođen web aplikacijama


MVC Model 2 sa isturenim
14
kontrolorem (Front Controller)

Izvor [1]
Patern Model-Pogled-Prezenter
15
(Model-View-Presenter MVP)

 MVP Patern predlaže razdvajanje funkcionalnosti


korisničkog interfejsa na:
 Pogled predstavlja stukturu kontrola na korisničkom
interfejsu, odnosno odgovoran je za prezentaciju i
stanje. Pogled ne bi treblo da sadrži ponašanje koje
opisuje kako kontrole reaguju na akcije korisnika

 Prezenter koji sadrži logiku kojom reaguje na akcije


korisnika, odnosno odgovoran je za ponašanje.
Patern Model-Pogled-Prezenter
16
(Model-View-Presenter MVP)

Izvor [1]
Patern Model-Pogled-Prezenter
17
(Model-View-Presenter MVP)

 U odnosu na dozvoljene načine komunikacije Pogleda i


Modela razlikuju se dve varijante ovog paterna:
 Patern Nadzorni Prezenter - Pogled direktno interaguje sa
Modelom. Pogled obuhvata logiku koja se može opisati
deklarativno, dok se u složenijim slučajevima uključuje
Prezenter

 Patern Pasivni Pogled - Pogled nije svestan promena u


Modelu i interakcija sa Modelom se obavlja isključivo preko
Prezentera
Patern MVP - Nadzorni Prezenter
18

Izvor [2]
Patern MVP - Nadzorni Prezenter
19

 Nadzorni Prezenter predlaže razdvajanje funkcionalnosti


korisničkog interfejsa na:
 Pogled sadrži stanja i upravlja jednostavnim mapiranjem sa
Modelom. On zadržava neki stepen autonomije i kontrole koje on
sadrži se i dalje mogu direktno vezati za domenske objekte

 Prezenter (koji se često naziva i Kontroler) sadrži prezentacionu


logiku. On ima dve osnovne odgovornosti: reagovanje na akcije
korisnika i delimičnu sinhronizaciju između Pogleda i Modela.
Prezenter mora osluškivati događaje koji se dešavaju na Pogledu
koji mu je pridružen i kao odgovor koordinisati neophodnim
ažuriranjem Pogleda i/ili Modela
Patern MVP - Pasivni Pogled
20

Izvor [2]
Patern MVP - Pasivni Pogled
21

 Pasivni Pogled takođe predlaže razdvajanje funkcionalnosti


korisničkog interfejsa
na:
 Pogled sadrži samo stanja

 Prezenter sadrži svu prezentacionu logiku uključujući i mehanizam


povezivanja. Pored reagovanja na akcije korisnika, on je
odgovoran i za kompletnu sinhronizaciju između Pogleda i
Modela. Prezenter mora osluškivati događaje koji se dešavaju na
Pogledu koji mu je pridružen i kao odgovor koordinisati
neophodnim ažuriranjem Pogleda i/ili Modela.
Patern Prezentacioni Model
22
(PresentationModel PM)

Izvor [1]
Patern Prezentacioni Model
23
(PresentationModel PM)

 Prezentacioni Model predlaže razdvajanje funkcionalnosti


korisničkog interfejsa na:
 Pogled koji predstavlja prikaz na korisničkom interfejsu. Detalji
vezani za korišćenu tehnologiju i grafičke komponente su unutar
Pogleda

 Prezentacioni Model koji sa jedne strane predstavlja apstrakciju


Pogleda nezavisnu od konkretne tehnologije korisničkog interfejsa
tj. predstavlja stanje i ponašanje (logiku) Pogleda ne ulazeći u
način njegovog prikazivanja. Sa druge strane, Prezentacioni
Model prilagođava podatake Modela u oblik lakši za
prikazivanje na korisničkom interfesju tj. može se reći da vrši
specijalizaciju Modela
Patern MVVM
24
(Model-View-ViewModel)

Izvor [3]
Patern MVVM
25
(Model-View-ViewModel)

 Patern MVVM sadrži sledeće komponente:


 Pogled (View): Pogled u MVVM sadrži samo elemente
korisničkog interfejsa, slično kao i u PM.

 ViewModel: View Model obuhvata prezentacionu logiku i


podatke za pogled i ima istu funkcionalnost kao
Prezentacioni Model u PM paternu. ViewModel sadrži
stanje pogleda i koristi Commands , DataBinding i
Notifications za komunikaciju sa pogledom

 Model: Model predstavlja poslovnu logiku aplikacije


Korišćeni izvori
26

1. https://manojjaggavarapu.wordpress.com/2012/05/02
/presentation-patterns-mvc-mvp-pm-mvvm/

2. Petrović, M., Turajlić, N., & Dragović, I. (2010) Pregled i


uporedna analiza prezentacionih paterna, Info M,
34/2010

3. https://docs.microsoft.com/en-us/previous-
versions/msp-n-p/gg405484(v=pandp.40)

You might also like