¿Alguien puede ayudarme a comprender el beneficio de usar System.Lazy con Singleton Design Pattern.¿Qué es System.Lazy <T> y el patrón de diseño Singleton
Respuesta
La mejor fuente en C# Singleton (también cubre Lazy<>
) pertenece a Jon Skeet: http://csharpindepth.com/Articles/General/Singleton.aspx
Supongamos que desea tener una clase que:
- representa un recurso único, por lo que debe tener una instancia única,
- la instancia necesita una inicialización caro,
- los parámetros de inicialización estarán disponibles sólo en el tiempo de ejecución,
- hay casos en los que no utilizará el objeto después de todo,
- hay más de un hilos que podrían tratar de inicializar el objeto singleton al mismo tiempo,
- etc.
Si la mayoría de los anteriores las condiciones son verdaderas, deberá asegurarse de que la clase sea Singleton, y la instancia única se inicialice lentamente (no se inicialice hasta que sea necesario). Si se dirige a C# 4.0 o posterior, usar Lazy<>
simplifica su diseño, lo hace más legible y fácil de recordar.
Los documentos dicen
Utilice una instancia de Lazy (Of T) aplazar la creación de un objeto grande o intensivo de los recursos o la ejecución de un tarea que consume muchos recursos, particularmente cuando tales creación o la ejecución podría no ocurrir durante la vida útil del programa.
Así que solo hace la instancia singleton si la necesita.
La creación de instancias diferidas generalmente es útil para que no se paguen todos los costos de creación cuando la aplicación se inicia: puede brindar una experiencia de usuario más agradable.
- 1. correctamente usando el patrón de diseño Singleton
- 2. Patrón de diseño singleton: escollos
- 3. ¿Qué es el patrón de diseño fantasma?
- 4. ¿Qué es el patrón de diseño "Dispatcher"?
- 5. Patrón de diseño singleton vs Singleton beans en contenedor Spring
- 6. Patrón de diseño Singleton y prevención de clonación
- 7. ¿En qué situación utilizamos el patrón de fábrica y en qué patrón de Singleton?
- 8. Patrón Singleton
- 9. ¿Qué patrón de diseño es este?
- 10. ¿Por qué el patrón de Borg es mejor que el patrón de Singleton en Python?
- 11. Eventos y delegados. ¿Qué patrón de diseño?
- 12. Alternativas para el patrón singleton?
- 13. ¿qué es el patrón de diseño de objeto de contexto?
- 14. ¿Qué es el patrón de diseño de acción?
- 15. ¿Qué patrón de diseño es el más apropiado?
- 16. ¿Qué es el "patrón compuesto"?
- 17. Ejemplo de patrón Singleton
- 18. ¿Qué patrón de diseño elegirás?
- 19. patrón singleton en VB
- 20. Restablecer System.Lazy
- 21. ¿Por qué el patrón de módulo crea un singleton?
- 22. Patrón de Inyección de Dependencia y Diseño Único
- 23. Patrón singleton en C++
- 24. Java Singleton patrón
- 25. Patrón de diseño y UML
- 26. ¿Qué patrón de diseño es el opuesto al patrón de fábrica?
- 27. Patrón de Singleton: duda en el libro de patrones de diseño de Head First
- 28. ¿Qué es un patrón de diseño de fábrica en PHP?
- 29. ¿Qué patrón de diseño de versiones recomendaría?
- 30. ¿Qué es este patrón de diseño? ¿Cómo usarlo?
¿Alguna referencia a dichos términos? Estoy seguro de que lo que define eso podría tener algunos ejemplos ... –