¿Son los Singletons realmente tan malos? [duplicar]

Posible duplicado:
¿Qué tiene de malo Singletons?

Es comprensible que muchos patrones de diseño puedan abusarse en algunos casos, y como mamá siempre dijo: "¡Demasiado de algo bueno no siempre es bueno!"

Me doy cuenta de que en estos días estoy usando mucho Singletons, y me preocupa que yo pueda abusar del patrón de diseño, y que cada vez me adentré más en un hábito de mala práctica.

Estamos desarrollando una aplicación Flex que tiene una estructura de datos jerárquica bastante grande guardada en la memoria mientras el usuario trabaja en ella. El usuario puede cargar, guardar, cambiar y actualizar los datos a pedido.

Estos datos se centralizan por medio de una clase Singleton, que agrega un par de ArrayCollections, Arrays, objetos de valor y algunas otras variables miembro nativas expuestas a través de captadores y definidores.

Para obtener una referencia a nuestros datos desde cualquier lugar de la aplicación, hacemos todo el tipo de método Model.getInstance () con el que estoy seguro que todos están familiarizados. Esto garantiza que siempre obtengamos la misma copia de datos, ya que cuando diseñamos, dijimos que solo una vez se permite que exista una instancia durante el tiempo de vida de la aplicación.

Desde este repositorio de datos central, es fácil para nosotros, por ejemplo, enviar eventos modificados de propiedades, y puede tener múltiples componentes de la interfaz de usuario que hacen referencia a los datos centrales, actualizar sus pantallas para reflejar los cambios de datos que se han producido.

Hasta ahora, este enfoque ha sido efectivo y demostrado ser muy práctico para nuestras circunstancias.

Sin embargo, me doy cuenta de que estoy un poco exagerado al crear nuevas clases. Las preguntas como si una clase debe ser un Singleton, o si debe manejarse de alguna otra manera, como el uso de una fábrica, por ejemplo, tienden a ser un poco difíciles, con un poco de incertidumbre.

¿Dónde trazo la línea con singletons? ¿Existe una buena guía para decidir cuándo usar Singletons y cuándo mantenerse alejado de ellos?

Además, ¿alguien puede recomendar un buen libro sobre patrones de diseño?

Respuestas a la pregunta(12)

Su respuesta a la pregunta