Tehnici de proiectare software - Tipografia
Tehnici de proiectare software - Tipografia
Tehnici de proiectare software - Tipografia
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Probabil contribuŃia cea mai importantă în popularizarea şabloanelor <strong>de</strong><br />
<strong>proiectare</strong> a avut-o cartea din 1995 "Şabloane <strong>de</strong> <strong>proiectare</strong>: Elemente <strong>de</strong> re utilizare a<br />
<strong>software</strong>-ului orientat pe obiecte", scrisa <strong>de</strong> Erich Gamma, Richard Helm, Ralph<br />
Johnson şi John Vlissi<strong>de</strong>s.<br />
După publicarea acestor două cărŃi, şabloanele <strong>de</strong> <strong>proiectare</strong> au început să se<br />
bucure <strong>de</strong> un mare interes în rândul comunităŃii <strong>software</strong>. Limbajul Java s-a <strong>de</strong>zvoltat<br />
in acelaşi timp în care şabloanele câştigau popularitate, <strong>de</strong>ci cei care foloseau Java au<br />
început să aplice şabloanele în proiectele lor. Continua creştere a popularităŃii<br />
şabloanele <strong>de</strong> <strong>proiectare</strong> în Java s-a manifestat prin prezentări în conferinŃe ca<br />
JavaOne. precum şi prin articole privind şabloanele în revistele <strong>de</strong>dicate limbajului<br />
Java.<br />
1.3. Concepte <strong>de</strong> baza în şabloane<br />
La baza i<strong>de</strong>ii <strong>de</strong> şablon stă conceptul <strong>de</strong> standardizare a informaŃiilor <strong>de</strong>spre o<br />
problemă comună şi soluŃia ei. Unul din cele mai folositoare rezultate ale muncii lui<br />
Alexan<strong>de</strong>r a fost <strong>de</strong>zvoltarea formei sau formatului în care e reprezentat şablonul.<br />
Este important ca un şablon să aibă un nume sugestiv şi să răspundă la<br />
întrebarea "Ce face aceste şablon?". în plus, trebuie să mai includă o discuŃie asupra<br />
problemei, o explicaŃie asupra modului în care şablonul rezolvă problema şi o<br />
indicaŃie privind beneficiile şi importanŃa folosirii şablonului respectiv.<br />
Evi<strong>de</strong>nt, <strong>de</strong>-a lungul timpului au apărut variaŃii ale formei Alexandriene,<br />
<strong>de</strong>zvoltate conform necesităŃiilor apărute în crearea unui anumit <strong>software</strong>. în cele ce<br />
urmează se va folosi forma formată din următoarele template-uri:<br />
a) Nume - un nume <strong>de</strong>scriptiv al şablonului<br />
b) Cunoscut şi ca - un nume alternativ, dacă există<br />
c) ProprietăŃile şablonului - clasificarea şablonului. Şablonul va fi <strong>de</strong>finit prin:<br />
obiecte<br />
l.Tip:<br />
- creationale - şabloane pentru crearea obiectelor<br />
- comportamentale - şabloane ce coordonează interacŃiunea obiectelor<br />
- structurale - şabloane care asigură relaŃiile statice şi structurale dintre<br />
- <strong>de</strong> sistem - şabloane care asigură interacŃiune la nivel a sistemului<br />
2. Nivel:<br />
- clasă - şablonul aplicat unei singure clase<br />
- componentă - şablonul ce cuprin<strong>de</strong> un grup <strong>de</strong> clase<br />
- arhitectural - şablonul e folosit pentru a coordona acŃiunile sistemului<br />
sau ale subsistemului<br />
d) Scop - o scurtă explicaŃie privind ceea ce face şablonul<br />
e) Introducere - o scurtă <strong>de</strong>scriere a unei probleme un<strong>de</strong> poate fi folosit şablonul<br />
f) Utilizare - un<strong>de</strong> şi cum se poate folosi şablonul <strong>de</strong> <strong>proiectare</strong><br />
L T ) Descriere - discuŃie <strong>de</strong>taliată asupra şablonului - ce face şi cum se comportă<br />
h) Implementare - o discuŃie <strong>de</strong>spre ce trebuie făcut pentru a implementa şablonul<br />
î) Beneficii şi inconveniente - consecinŃele utilizării şablonului<br />
I) Variante ale şablonului - implementări alternative posibile<br />
k) Şabloane asociate - alte şabloane care sunt asociate sau apropiate <strong>de</strong> şablon