Se suele decir que los singleton son una mala elección de diseño, así que ¿cómo diseñar una aplicación cuando quiere evitarlos?Reemplazar singletons con qué?
Respuesta
puede utilizar conceptos tales Dependency Injection para inyectar los servicios de los que depende (básicamente los únicos que usa) a que, en lugar de proporcionar una referencia global a ellos
En particular, los marcos DI pueden simplificar una gran parte del cableado requerido, proporcionando la comodidad de un singleton, pero con un mejor aislamiento y la posibilidad de extenderse a múltiples instancias en el futuro, si es necesario. –
Mis 2 centavos.
Simplemente diseñe su aplicación de tal manera que realmente no importe si se pasa solo o no a su objeto.
Considere si tiene MySingleton.Instance inside -> que se ve mal y está estrechamente relacionado con esto. Si pasó MySignleton como parámetro en un método y se crea una instancia externa como MySingleton.Instance o MySingleton() -> bueno, todavía puedo simular o cambiarlo, así que realmente no importa.
- 1. Pruebas unitarias con singletons
- 2. Generando singletons
- 3. Tratando con Singletons que tienen que subclase
- 4. Trabajando con singletons en .Net Remoting
- 5. repositorios DDD como singletons?
- 6. Singletons y constantes
- 7. Extendiendo singletons en PHP
- 8. Thread Safe Singletons en Java
- 9. Estoy usando Dependency Injection: ¿qué tipos debo enlazar como singletons?
- 10. Globales y singletons en Python
- 11. Pruebas de Singletons y subclases
- 12. ¿MVVM Light SimpleIoC admite singletons?
- 13. Propósito de los singletons en la programación
- 14. Reemplazar "con \"
- 15. ¿Qué garantías tienen los singletons de Scala con respecto a la serialización?
- 16. Singletons con TimerManager en el clúster de WebSphere
- 17. Eliminar singletons en la salida de la aplicación con Ninject
- 18. Lanzamiento de Objective-C de singletons
- 19. Reemplazar 'con \' en Ruby?
- 20. iOS Singletons y gestión de memoria
- 21. Python: reemplazar con regex
- 22. SELECCIONAR con un Reemplazar()
- 23. Reemplazar temperatura con consulta
- 24. Python Reemplazar \\ con \
- 25. Usar singletons en akka scala actor
- 26. genéricos de Java, singletons y métodos estáticos
- 27. ¿Por qué recibo StringIndexOutOfBoundsException cuando trato de reemplazar `\\` con `\`?
- 28. reemplazar rand() con openssl_random_pseudo_bytes()
- 29. Reemplazar UIBarButtonItem con UIActivityIndicatorView
- 30. reemplazar ereg_replace con preg_replace
Tienen sus usos, pero como todo lo que debe saber cuándo usarlos. Diría que podrían ser parte de una mala elección de implementación en lugar de una mala elección de diseño. –
Consulte este artículo: [http://www.ibm.com/developerworks/webservices/library/co-single.html](http://www.ibm.com/developerworks/webservices/library/co-single.html) – pierocampanelli