Professional Documents
Culture Documents
Uzorci Dizajna
Uzorci Dizajna
uzroci redizajna:
kreiranje objekta eksplicitnim specificiranjem klase
ovisnost o specifinim operacijama
ovisnost o sklopovskoj i programskoj platformi
ovisnost o reprezentacijama ili implementacijama objekta
ovisnost o algoritmu
vrsta povezanost
proirenje funkcionalnosti kroz podklase
nemogunost prikladnih promjena klasa
5. aplikacije:
vano: interno ponovno koritenje, odravanost i proirivost
biblioteke klasa:
skup povezanih i ponovno koritenih klasa koje su dizajnirane da
pruaju korisnu i ope namjensku funkcionalnost
njihov dizajn je sloeniji nego kod aplikacija jer trebaju korisno
djelovati kod mnogih aplikacija
okviri:
okvir je skup kooperirajuih klasa koje sastavljaju ponovno koriteni
dizajn za specifini softver
kod dizajna okvira vano je da bude to fleksibilniji i proirivi
mnogi zreli okviri obino ukljuuju vie uzoraka dizajna. Uzorci
pomau da arhitektura okvira odgovara mnogim razliitim
aplikacijama bez potrebe za redizajnom
kako uzorci i okviri imaju slinosti, a oni se jasno razlikuju na tri
naina:
- uzorci dizajna su apstraktniji od okvira
- uzorci dizajna su manji arhitektonski elementi od okvira
- uzorci dizajna su manje specijalizirani od okvira
6. Kako
7. Builder
Odvaja konstrukciju sloenog objekta od njegove reprezentacije tako
da isti proces konstrukcije moe kreirati razliite
reprezentacije/prikaze
Objektni uzorak kreiranja
algoritam za kreiranje sloenog objekta treba biti neovisan o
dijelovima od kojih se sastoji i kako su sastavljeni ti dijelovi
8. Factory method
Definira suelje za kreiranje objekta ali dozvoljeva podklasama da
odlue koju klasu treba instancirati. Doputa klasi da odgodi
instantaciju na podklase.
Klasni uzorak kreiranja
Primjenjuje se kada klasa ne moe predvidjeti klasu za objekte koje
mora kreirati
Primjenjuje se kada klasa eli da njene podklase spacificiraju objekte
koje kreiraju
9. Bridge
Odvaja apstrakciju od implementacije tako da se to dvoje moe
neovisno mijenjati
Objektni uzorak strukture
Primjenjuje se kada se eli izbjei permanentno vezivanje izmeu
apstrakcije i implementacije. Sluaj toga je kada se implementacija
treba izabrati ili promijeniti tijekom izvravanja
promjene u implementaciji apstrakcije ne smiju imati utjecaj na
klijente, tj. njihov kod ne treba se kompilirati