Por favor, hágame saber cuál es la mejor manera de implementar Singleton Design Pattern en C# con restricción de rendimiento?¿Cuál es la mejor manera de implementar Singleton Design Pattern en C# con restricción de rendimiento?
Respuesta
Uno de los best article en el patrón Signleton de jon skeet.
URL más reciente para el artículo al que se hace referencia: http://csharpindepth.com/Articles/General/Singleton.aspx –
public class Singleton
{
static readonly Singleton _instance = new Singleton();
static Singleton() { }
private Singleton() { }
static public Singleton Instance
{
get { return _instance; }
}
}
Sólo recientemente, vine a saber que Singleton se considera un anti-patrón por muchos y debe evitarse Jon Skeet. La solución más limpia puede ser usar DI u otras características. Incluso si vas con Singleton acaba de leer esta interesante discusión What is so bad about singletons?
parafraseado de C# in Depth: Hay varias maneras diferentes de implementar el patrón Singleton en C#, desde No Hilo de seguridad a un totalmente perezosamente cargado de roscas de versión segura, simple y de alto rendimiento.
mejor versión - utilizando .NET de 4 Tipo de Lazy:
public sealed class Singleton
{
private static readonly Lazy<Singleton> lazy =
new Lazy<Singleton>(() => new Singleton());
public static Singleton Instance { get { return lazy.Value; } }
private Singleton()
{
}
}
Es muy sencillo y funciona bien. También le permite verificar si la instancia se ha creado aún con la propiedad IsValueCreated, si la necesita.
- 1. Java Singleton Design Pattern: Preguntas
- 2. Cómo implementar Singleton Pattern (sintaxis)
- 3. ¿Cuál es la mejor manera de implementar params en JavaScript?
- 4. ¿Cuál es la mejor manera de implementar una aplicación Pylons?
- 5. ¿Cuál es la mejor manera de solucionar problemas de rendimiento?
- 6. MapMaker Design Pattern?
- 7. ¿Cuál es la mejor manera de implementar un "temporizador"?
- 8. ¿Cuál es la mejor manera de implementar protocolos?
- 9. C# Singleton Pattern y MEF
- 10. Session vs singleton pattern
- 11. CFML Design Pattern resources?
- 12. ¿La mejor manera de implementar singleton en una aplicación de consola C#?
- 13. ¿Cuál es la mejor manera de implementar restricciones de entrada en un TextBox en C#?
- 14. ¿Cuál es la mejor manera de implementar BackgroundWorker de C# en Delphi?
- 15. ¿Cuál es la mejor manera de implementar el resaltado de sintaxis del código fuente en Cocoa?
- 16. ¿Cuál es la mejor manera de implementar punteros inteligentes en C++?
- 17. ¿Cuál es la mejor manera de escribir comentarios en C?
- 18. ¿Cuál es la mejor manera de implementar la validación de campo con ASP.NET MVC?
- 19. ¿Cuál es la mejor manera de comparar programas en Windows?
- 20. ¿Cuál es la mejor manera de implementar la paginación usando Spring MVC con mysql
- 21. Cuál es la mejor manera de implementar un campo de contador en MySQL
- 22. ¿Cuál es la mejor manera de implementar el cifrado bidireccional con PHP?
- 23. ¿Cuál es la mejor manera de implementar atributos personalizados en dotnet/.NET?
- 24. ¿Cuál es la manera de implementar la funcionalidad Guardar/Cargar?
- 25. La mejor manera de crear una matriz singleton
- 26. ¿Cuál es la mejor manera de implementar relaciones de enlace para HATEOAS en XML?
- 27. ¿Cuál es la mejor manera de hacer la validación de entrada en C++ con cin?
- 28. ¿Cuál es la mejor manera de implementar controles de usuario en ASP.NET MVC?
- 29. ¿Cuál es la mejor manera de implementar el estilo de Gmail "deshacer" en Rails?
- 30. La mejor manera de implementar la compatibilidad de complementos
¿Cuál es la "restricción de rendimiento" de la que habla? – Oded
Me gustaría la implementación más rápida. He oído hablar de un artículo en este sitio, pero no recuerdo el nombre. Si alguien sabe, publíquelo aquí. –