Mesto design pattern-a pri ...

projektovanju više puta upotrebljivog objektno orijentisanog softvera

Iskusni softverski projektanti znaju da nije uvek neophodno svaki problem rešavati od početka. Zbog toga se u mnogim objektno orijentisanim sistemima često naliazi na iste uzorke klasa i objekata koji komuniciraju. Ovi uzorci opisuju rešenja specifičnih problema projektovanja i omogućuju ponovnu upotrebljivost za potrebe (objektno orijentisanog) dizajna. Projektant koji poznaje design pattern-e može ih iskoristiti pri rešavanju problema, bez potrebe da ih ponovo otkriva, jer primenjuje rešenja, koja su već ranije bila uspešno korišćena.

Dakle, design pattern-i su pogodni za više puta upotrebljivi objektno orijentisani projekat, jer imenuju, apstrahuju i identifikuju ključne aspekte široke klase problema koji imaju slični pojavni oblik.

Dalje, design pattern-i identifikuju klase i primerke, te njihove uloge, interakcije, ali i distribuciju njihovih odgovornosti, te mogu da unaprede i dokumentaciju i održavanje postojećih sistema.

Naravno, pre primene design pattern-a na konačno rešenje valja proceniti prednosti i mane te primene. Na polju obezbeđivanja fleksibilnosti, design pattern-i su od značaja, ali oni svoju mogućnost modifikacije često postižu uvođenjem dodatnih slojeva posrednosti, što, na žalost, može da komplikuje dizajn i da se odrazi na cenu u perfomansama.

... projektovanju koje uzima u obzir promene

Projektovanje koji ne uzima u obzir promene rizikuje da se u budućnosti redizajnira. Same promene mogu da se odnose na novo definisanje ili izmenu implementacije klasa, promenu klijenata i ponovno testiranje. Tome valja dodati da redizajniranje utiče na mnoge delove softverskog projekta, a nepredviđene promene su, uglavnom, skupe.

Design pattern-i su od velike pomoći i kod ovog aspekta projektovanja, jer obezbeđuju da sistem može da se na određeni način menja. Upravo ključ za što veću mogućnost ponovnog korišćenja i jeste predviđanje novih zahteva i promene postojećih zahteva. Svaki design pattern dozvoljava variranje nekog aspekta strukture sistema nezavisno od drugih aspekata.

Sledi lista nekih od konkretnih i relativno čestih razloga za redizajniranje (praćen design pattern-om adekvatnim u opisanoj situaciji):

Klasifikacija design pattern-a

Design pattern-i mogu da se klasifikuju prema sledeća dva kriterijuma:

namena design pattern-a

domen primene design pattern-a

Kasifikacija design pattern-a iz ovog rada
  Namena Domen
Factory method Creational Klasa
Singleton Creational Objekat
Iterator Behavioral Objekat
Observer Behavioral Objekat
Visitor Behavioral Objekat

Kriterijum namena zasniva se na delatnosti design pattern-a.

Kriterijum domen označava da li se DP usredsređuje pre svega na klase, ili na objekte.

Creational design pattern-i klasa prepuštaju potklasama neke segmente kreiranja objekata.
Creational design pattern-i objekata prepuštaju drugim objektima neke segmente kreiranja objekata.

Structural design pattern-i klasa koriste nasleđivanje radi sastavljanja klasa.
Structural design pattern-i objekata opisuju načine grupisanja objekata.

Behavioral design pattern-i klasa koriste nasleđivanje radi opisivanja algoritama i toka kontrole.
Behavioral design pattern-i objekata opisuju načine na koji se odvija saradnja grupe objekata ne bi li se izvršile operacije koje objekti ne mogu izvršiti samostalno.

 

... JAVA AWT/SWING

Observer DP, Composite DP, Memento DP, Strategy DP, Decorater DP su se pokazali kao vrlo korisni mehanizmi za upotrebu pri izgradnji user interface-a (radi obezbedjenja undo-redo mehanizma, ugnježdenih kontejnera, uskladjivanja funkcionalnosti medjusobno zavisnih delova, ...) o čemu već sada postoje izvesne dokumentacije i saopštenja sa workshop-ova sa ciljem da se odmakne i dalje od ideja i skica rešenja.

 


 

← Kratak istorijski pregled Singleton DP →