-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDesign patterni
50 lines (42 loc) · 3.09 KB
/
Design patterni
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Azra:
1. Singleton patern (kreacijski patern)
Singleton paterna osigurava da se klasa može instancirati samo jednom i da osigura
globalni pristup kreiranoj instanci klase. Primjeri takvih klasa su thread
pools (skupina niti), objekti koji upravljaju setovanjem registara, objekti koji se koriste za
logiranje, objekti koji se koriste kao drajveri za razne uređaje kao što su printeri i grafičke
kartice. Ukolikoje potrebno za postojeću klasu napraviti Singleton klasu, to se može postici na
nekoliko načina; da se doda privatni konstruktor static, i postavljanje privatne vidljivosti istih,
dodavanje privatnog static read-only objekta koji se interno instancira korištenjem
privatnog konstruktora, dodavanje javno vidljive osobine ili metode koja pristupa
privatnom objektu i instancira ga ako objekat već ne postoji.
2. Prototype patern (kreacijski patern)
Uloga ovog paterna je da udupla postojeću klasu, ukoliko je ta klasa velika, te njeno kreiranje
zahtjeva velike resurse. Postoje dva načina implementacije Prototypes paterna: shallow (površinsko)
i deep(duboko) kopiranje.
U našem projektu se to moglo uraditi ako bismo analizirali prodaje na skupu podataka iz baze.
Potrebno bi bilo kopirati podatke iz baze podataka, enkapsulirati ih u objekat i nad njima raditi analizu.
Nije dobra ideja ponovo pristupati bazi podataka, čitati podatke i kreirati objekat za njihovo smještanje.
Tada se objekat, koji se koristi za analizu prodaje, klonira i koristi za drugu analizu.
3. Strategy patern (patern ponašanja)
Uloga ovog paterna je da sve algoritme izdvoji iz glavne klase i stavi ih u posebne klase.
Najčesće se koristi ako postoji više algoritama za rješavanje nekog problema. On omogućava izbor
klijentu da izabere neki od algoritama, te su oni neovisni o klijentima koji ih koriste.
Mi bismo imali klasu UrediProfil, te interfejs IPonasanje, koji implementira konkretne algoritme
za UrediProfilKupca i UrediProfilObjekta.
Faris:
1. Factory Method (kreacijski patern)
Uloga Factory Method paterna je da omogući kreiranje objekata na način da podklase odluče
koju klasu instancirati. Različite podklase mogu na različite načine implementirati interfejs.
Factory Method instancira odgovarajuću podklasu(izvedenu klasu) preko posebne metode na
osnovu informacije od strane klijenta ili na osnovu tekućeg stanja.
U našem projektu se to moglo uraditi prilikom pripreme i naručivanja hrane(npr. pice).
Budući da lanac picerija nudi mogućnost prodaje raznih vrsta pica potrebno je omogućiti kreiranje
različitih vrsta pica npr. margarita, capricoza, funghi, ali i instanciranje različitih picerija u
lancu. Operacija naručivanje pice je dio klase Objekat.
2. Observer patern (patern ponašanja)
Uloga Observer paterna je da uspostavi relaciju između objekata tako kada jedan objekat promijeni
stanje, drugi zainteresirani objekti se obavještavaju.
U našem objektu se to moglo uraditi tako da se, kada kupac ostavi odredjeni komentar na narudžbu,
promijeni atribut komentar u klasi Narudžba i odmah se obavijesti odredjeni Objekat da je njihova narudžba
komentarisana u svrhu poboljšanja usluge objekata.
3.