Los singletons no se consideran universalmente mal diseño, sin embargo, la mayoría de los casos de uso de singletons están adecuadamente cubiertos por otros patrones menos controvertidos.
Algunas razones por las que se consideran malas:
- La concurrencia es difícil con los singletons, como lo es distribuir su computación en múltiples máquinas.
- Si luego desea extraer parte de su código en una biblioteca, probablemente debería descomponer sus singletons ya que pueden suceder cosas extrañas.
- Algunos programadores ven el uso de singletons como la creación de un estado global innecesario. Esto se debe a que algunos programadores novatos, al enterarse del patrón singleton, intentan convertir todo bajo el sol en un singleton, lo que significa que OO se sale de la ventana y básicamente nos queda un enorme espacio de nombres global.
Los Singletons son buenos si se usan para proporcionar un único punto de acceso a un recurso único: entrada / salida estándar, tal vez. Sin embargo, debe estar muy seguro de que solo NUNCA necesitará una instancia de esta cosa antes de considerar un singleton.
- Soy un graduado de secundaria. Quiero completar una licenciatura en informática desde mi casa en un año o año y medio a un costo muy bajo (gratis si es posible). ¿Qué tengo que hacer?
- ¿Hay alguna prueba de usabilidad con respecto a las ventanas modales de Facebook Connect?
- ¿Cómo es GATE FORUM Bhubaneswar para CS?
- Cómo ver las pruebas de software en los próximos 5 años
- ¿Cómo haría para almacenar 8 septillones de registros en una base de datos?
Y definitivamente debe separar el comportamiento real del singleton del código de fábrica que inicializa y sirve su instancia única; eso es bueno OO.