29.04.2013 Views

Tehnici de proiectare software - Tipografia

Tehnici de proiectare software - Tipografia

Tehnici de proiectare software - Tipografia

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!