Design pattern (DP) - uvod
Design patterns=opšta, isprobana i ponovo iskoristiva dizajnerska rešenja
koja mogu da se primene na uobičajene probleme u (objektno orijentisanom) razvoju
softvera.
Opisuju se na nivou klasa i objekata koji su prilagođeni da
reše neki opšti projektni problem
u nekom konkretnom kontekstu.
Svaki DP se odlikuje:
- 1. imenom
- Samo ime je, uglavnom, dovoljno deskriptivno da sažeto pojasni uzorak.
i sledećim skupom specifikacija:
- svrha
kratak opis osnovne delatnosti DP-a (ponekad se opiše i konkretan
projektni problem na koji se DP odnosi)
- opis scenarija koji ilustruje neki projektni problem sa namerom da
potpomogne razumevanje apstraktnog opisa DP-a
Obično se opiše i način na koji strukture klasa i objekata u
DP-u rešavaju pomenuti projektni problem.
- opis situacije u kojoj se može primeniti
Ponekad se navedu i primeri lošeg projektovanja, a koje može
biti korigovano upotrebom konkretnog DP-a.
- grafički prikaz odnosa i interakcija među klasama i objektima
(npr. dijagram klasa, dijagram objekata, dijagram interakcije)
- opis klasa i/ili objekata koji učestvuju u DP-u uz navođenje
njihove odgovornosti
- posledice primene DP-a
Uz analizu nedostaka i prednosti upotrebe DP-a, diskutuje se i o
načinu na koji DP ispunjava svoju namenu uz eventualno
navođenje onih segmenata strukture čitavog sistema koji mogu nezavisno
da se menjaju.
- uputstvo za implementaciju
Konkretni saveti, programerske tehnike, ali i klopke, koje valja uzeti u obzir
pri samoj implementaciji design pattern-a.
Obratiti pažnju na stepen zavisnosti od programskog jezika.
- fragmenti programskog koda
Služe kao ilustracija načina na koji se uzorak može
implementirati.
- primeri korišćenja konkretnog DP-a u realnim sistemima
- skup alternativnih imena (pod uslovom da postoje)
- spisak bliskih design pattern-a
Obično se pruži i informacija o razlikama među
bliskim design pattern-ima.
U ovom radu su stavke 3-6 opisane tako da nisu vizuelno jasno izdiferencirane,
već su ukomponovane kao delovi stavke 2 i stavke 5,
dok umesto stavki 8 i 9 su pruženi primeri sa komentarima (negde detaljniji,
negde manje detaljniji, što je zavisilo samo
od prirode problema koji se ilustruje).
Inače, sama specifikacija je predložena od strane Gamma, Eric;
Helm, Richard; Johnson, Ralph ; Vlissides, John u knjizi Design Patterns. Elements of
Reusable Software, Addison-Wesley, 1995, ali nije imperativ pri opisu design pattern-a.
Tim pre što su se autori u izboru programskih jezika opredelili za
Smalltalk i C++, te je takav izbor uticao i na
procenu i komentare šta se može, a šta ne relativno
jednostavno implementirati.