Tuve otra pregunta de la entrevista. Pensé que esto era una tontería, pero tal vez hay algo que me falta. La pregunta preguntó qué patrón de GoF es esto (respuesta: singleton) y, si hay algún problema, cómo los resuelvo.Extracto del código de Singleton, una pregunta de la entrevista
No veo ningún problema. Mencioné que esto nunca se libera y espero que de este patrón. Eso es todo lo que dije. ¿Me estoy perdiendo de algo?
public class Class1
{
private static Class1 oInstance = null;
private Class1() { }
public static Class1 GetInstance()
{
if (oInstance == null)
{
oInstance = new Class1();
}
return oInstance ;
}
}
+1 ... aunque personalmente no usaría typeof (Class1) para el bloqueo, sino simplemente una instancia de objeto que no se usa para nada más. –
Estoy absolutamente con Fredrik Mörk: bloquear un objeto tipo es una mala práctica (como bloquear esto). Cada código puede inmovilizarlo (incluso en aplicaciones) si bloquea objetos tipo (y cada código que tenga acceso a una instancia puede bloquearlo si lo bloquea). lock (typeof (Class1)) {Class1.GetInstance(); } y estás en serios problemas ... –
Garry, mira el patrón en mi respuesta, limpiador de camino IMHO –