De acuerdo en parte con lo que dice Abel, pero cuidado con la afirmación
"los Singleton no tienen estado", porque en realidad esa -creo- es una mala
traducción...
 
Lo único que caracteriza a un Singleton es que hay una única instancia para
la clase, quiere decir que el estado de un Singleton es único para toda la
clase (de allí que suela implementar con métodos y atributos "static"), pero
no sólo puede tener estado (valores en sus atributos), sino que éste estado
puede cambiar, con la única condición de que debe permanecer único para toda
la clase.
 
Por lo tanto, un objeto Singleton no es un objeto sin estado, y ni siquiera
un objeto constante.
 
¿Se entiende?
 
Saludos,

Carlos Fontela

 

 

 

  _____  

De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] En nombre de Abel Fillol
Enviado el: jueves, 27 de septiembre de 2007 8:05
Para: Una lista para consultas de programación
Asunto: Re: [Prog] singleton con parametros


El singleton por definición no puede tener estado. La idea del singleton es
que todo el mundo usa algo y ese algo es igual para todos y para todos se
comporta de la misma manera, si necesitas comportamientos distintos según
quién te está llamando no estamos hablando entonces de un singleton. En ese
caso estarías necesitando un Builder <<
http://es.wikipedia.org/wiki/Builder_(patr%C3%B3n_de_dise%C3%B1o) >>.
Ahora, si me decis que solamente necesitas 2 o 3 comportamientos y no uno
distinto para cada clase, entonces podrías solucionarlo con 2 o 3 singleton
distintos, pero bueno, ahí ya depende del contexto cuál es la mejor
solución. 

Conclusión, los singleton no tienen estados y eso hace imposible lo que
estás intentando hacer. 


El día 27/09/07, Francisco Dibar < [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > escribió: 

hola!

tengo una clase que se inicializa con un parametro, y quiero que se 
comporte como singleton, es decir:

Singleton* pA = Singleton::getInstance(paramA);

pero no me gusta como queda porque si ahora hago:

Singleton* pB = Singleton::getInstance(paramB);

me va a devolver el singleton que se inicializo con paramA. Entonces 
tengo que hacer siempre un chequeo de si el parametro que le paso es
el que se uso para inicializar.

que otra solucion mas prolija se les ocurre?

slds.
francisco.
_______________________________________________ 
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion
<http://listas.fi.uba.ar/mailman/listinfo/programacion> 





-- 
Abel Sebastián Fillol 
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a