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.

• Variante ale şablonului<br />

Una dintre opŃiunile şablonului Singleton. <strong>de</strong> multe ori nebăgată în seama, este<br />

aceea <strong>de</strong> a avea mai mult <strong>de</strong> o instanŃă într-o clasă. Beneficiul este că restul aplicaŃiei<br />

poate rămâne la fel. în timp ce acelea care ştiu <strong>de</strong> aceste instanŃe multiple pot utiliza<br />

alte meto<strong>de</strong> pentru o obŃine alte instanŃe.<br />

Metoda <strong>de</strong> acces a singleton-ului poate fi punctul <strong>de</strong> intrare către un set <strong>de</strong><br />

instanŃe, toate <strong>de</strong> un subtip diferit. Metoda <strong>de</strong> acces poate <strong>de</strong>termina la rulare ce subtip<br />

specific <strong>de</strong> instanŃă să returneze. Acest lucru poate părea ciudat, dar este foarte<br />

folositor atunci când se utilizează clase dinamice. Sistemul care foloseşte singleton-ul<br />

rămâne neschimbat, în timp ce implementarea specifică a singleton-ului poate fi<br />

diferită.<br />

• Şabloane asociate<br />

Printre şabloanele asociate Singleton-ului se număra:<br />

- Abstract Factory<br />

- Buil<strong>de</strong>r<br />

- Prototype<br />

• Exemplu<br />

unica:<br />

Şablonul Singleton se poate utiliza pentru crearea unei conexiuni la distanŃă<br />

final class KemoteConnection {<br />

private Connect con;<br />

privare static RemoteConnecticn re = nev;<br />

RemoteConnection(connection) ; private<br />

RemoteConnection(Connect c) { con = c;<br />

public static RemoteConnection getRemoteConnection ( ) {<br />

return re; } public void<br />

setConnection(Connect c) f<br />

this(c);<br />

\<br />

19

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

Saved successfully!

Ooh no, something went wrong!