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.
• Ş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