Después de leer detenidamente los datos sobre singletons (el código huele, no el patrón) Me pregunto:¿Cómo puedo evitar/refactorizar los singletons malos en la práctica?
¿Cómo puedo refactorizar mi código para deshacerme de ellos?
A pesar de que casi todos aceptaron que los singletons malos son, bueno, malos, no pude encontrar ningún consejo práctico sobre cómo reemplazarlos. O es muy trivial o muy difícil.
Hay algunas maneras en que puedo pensar, pero todo parece inflar mi código tremendamente.
Por ejemplo, supongamos que tengo una clase "global" AppConfig
que contiene información sobre la licencia del producto y describe las funciones disponibles para el usuario.
Lo que puedo pensar:
- crear una clase base común para todos y cada clase de mis proyectos, que contiene una instancia
AppConfig
. (MALO: Imposible para los casos en los que ya tiene una clase base, por ejemplo, formularios) - Cree una interfaz común con un método
setAppConfig
. - Crear una
AppConfigFactory
mundial que puede crearAppConfig
instancias (BAD: Sólo cambia el problema a otra clase) - pase la instancia como parámetro para cada método que lo necesita. (BAD: Código hinchazón)
- ...
¿Qué puedo hacer yo?
EDIT: Aclaración: He identificado un single simple malo en mi código. Ahora quiero refactorizar mi código para eliminarlo. Estoy pidiendo consejos e ideas generales sobre cómo lograr esto.
Parece un duplicado de http://stackoverflow.com/questions/86582/singleton-how-should-it-be-used – Justicle
No es un duplicado, al menos no de la pregunta que paró. No quiero saber el uso correcto o los pros y los contras de un singleton. Tengo un singleton malo que quiero eliminar y quiero saber la mejor manera de hacerlo. –
http://misko.hevery.com/2008/08/21/where-have-all-the-singletons-gone/ –