que he estado haciendo un montón de lectura acerca de cómo el uso de clases simples se está convirtiendo en una mala práctica en la programación debido a las dependencias ocultas, difícil de probar, etc, etcSingleton La eliminación
Una gran cantidad de mensajes en el foro he leído han dicho que aún puede mantener la funcionalidad principal de un singleton de solo permitir una instancia sin usar el patrón singleton.
Me preguntaba si alguien podría dar un ejemplo práctico de esto. Una gran cantidad de publicaciones han sugerido utilizar una clase de fábrica para crear instancias únicas donde las dependencias se muestran claramente. Para mí, esto parece tomar varios singletons y combinarlos en un único singleton de fábrica que tendría los mismos problemas.
Los singletons no son intrínsecamente malvados. Sin embargo, usarlos donde no debe hacerlo, especialmente si está realizando su propia gestión del ciclo de vida de los objetos (en lugar de usar un contenedor DI). A menos que necesite FactoryFactory, ¿por qué * no debería * una fábrica ser un singleton? (Esto es más retórico, hay razones reales, pero a menudo no importan). –
Ya sabes, cuando uso Spring Framework para administrar mi ciclo de aplicación, todos los beans que crea son singletons, y también hay solo uno ApplicationContext también (programa principal de Spring).Así que los singletons no son malos, solo debes ocuparte de los problemas que mencionaste (dependencias, capacidad de prueba, etc.) – Luciano
Podría ser beneficioso formular esta pregunta como una pregunta sobre un juego: "son los peores escenarios posibles para el mal uso" de singletons mejor que los peores escenarios posibles de simplemente llamar a new/making COMPLETELY static classes/etc "? La única razón por la que menciono esto es porque cualquier patrón que se pueda usar probablemente se use incorrectamente, por lo que merece la pena preguntar "cuáles limitan los peores resultados posibles". – Dave