[Java lista] Tervezési minták

bognár attila attila at netalfa.hu
2008. Sze. 23., K, 16:07:01 CEST


> Azt garantalja, hogy az adott osztalynak csak egy peldanya van.
>
> Azt viszont sajnos nem garantalja, hogy az osztalybol csak egy peldany
> lesz a VM-ben, azt meg p[lane nem, hogy mas VM-ekben se lesz.
>   
Ilyen garancia nyilván nincs, de definiálni kellene, hogy mit értünk 
"adott osztályon" és "az osztályon", illetve milyen környezetben. Nekem 
egy osztály egy ClassLoader által betöltött osztályt jelent. Ha másik 
tölt be egy ugyanolyan nevű osztályt, akkor az már nem ugyanaz, 
legfeljebb ugyanúgy hívják (lásd DNS gyorsítótár mérgezés história: 
helytől függően vagy a bankodat éred el, vagy a szélhámosokat). Ez 
nyilván nem mellékes, de ha a Singleton mintáról szól valami, akkor 
célszerű arra fókuszálni, és legfeljebb a lábjegyzetben megjegyezni az 
esetleges megvalósítási buktatókat.

A Singleton számomra inkább elv: valamilyen szintű egyediség kell, ennek 
a kezelése nem az üzleti logika feladata, hanem egy adott helyen 
elérhető metódus biztosítja számunkra, hogy minding ugyanazt az 
objektumot adja vissza. Több ilyen adott helyen elérhető metódus lehet, 
valószínűleg mindegyik más-más objektumot ad vissza, de egy adott 
metódus mindig ugyanazt. Ezen metódus feladatai:
- objektum létrehozása (ezen akár vitatkozni is lehetne, mert tágabb 
értelemben akár más által létrehozott objektumot is "publikálhat") - 
akár lusta módon
- objektum nyilvántartása



További információk a(z) Javalist levelezőlistáról