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
