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.

• Şabloane asociate<br />

Printre şabloanele asociate se află:<br />

- Command - poate folosi Memento-uri pentru a urmări stările în ve<strong>de</strong>rea<br />

anulării unor acŃiuni<br />

- State<br />

• Exemplu<br />

Şablonul Memento poate 11 folosit, <strong>de</strong> exemplu, pentru a reŃine un număr:<br />

class Memento { ir.t num;<br />

Memento(int c) {<br />

num = c; } int<br />

getNum() {<br />

return num;<br />

x<br />

III.7. State<br />

• Cunoscut şi ca Objects For States<br />

• ProprietăŃi<br />

• Scop<br />

- Tip: comportamental<br />

- Nivel: obiect<br />

Să schimbe uşor comportamentul unui obiect la rulare.<br />

• Introducere<br />

De multe ori, o aplicaŃie se comportă diferit în funcŃie <strong>de</strong> valorile variabilelor<br />

ei interne. De exemplu, când se lucrează cu un fişier text, acesta trebuie salvat din<br />

când în când. Multe dintre editoarele <strong>de</strong> text curente permit salvarea documentului<br />

doar când acesta s-a modificat. Imediat ce textul a fost salvat, el este consi<strong>de</strong>rat<br />

"curat"; conŃinutul fişierului este i<strong>de</strong>ntic cu cel afişat pe ecran.<br />

Implementarea acestui lucru într-o metodă individuală face codul greu <strong>de</strong><br />

menŃinut şi <strong>de</strong> citit. Aceste meto<strong>de</strong> vor conŃine structuri if/else. O tactică ar fi<br />

reŃinerea stării unui obiect într-o singură variabilă folosind constante pentru o valoare,<br />

caz în care meto<strong>de</strong>le vor conŃine structuri switch/case care vor fi asemănătoare în<br />

fiecare metodă.<br />

Obiectele reprezintă stare şi comportament; starea este păstrată în atributele lor<br />

iar comportamentul este <strong>de</strong>finit în meto<strong>de</strong>. Şablonul State permite schimbarea<br />

dinamică a comportamentului unui obiect. Acest comportament dinamic este obŃinut<br />

prin <strong>de</strong>legarea tuturor apelurilor <strong>de</strong> meto<strong>de</strong> care se bazează pe anumite valori către un<br />

41

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

Saved successfully!

Ooh no, something went wrong!