Optimización de código con Singleton

17/01/2006 - 11:56 por solusoft | Informe spam
Hola a todos,

tengo este código que voy repitiendo en varias clases, y quisiera saber, no
sé si será posible, si existe alguna forma de no seguir repitiendo casi
siempre el mismo código, quizá utilizando reflexión o algún otro mecanismo.

Quizá Katrib se haya inventado algo :-)

Este es el código:

private static CLASE instanciaUnica = null;
private static object lockObject = new object();

static CLASE() {}
private CLASE() {}

public static CLASE Instancia
{
get
{
if (instanciaUnica == null)
{
lock (lockObject)
{
if (instanciaUnica == null)
{
// Crear instancia de objeto
instanciaUnica = new CLASE();
}
}
}
return instanciaUnica;
}
}


Un saludo y gracias de antemano.
 

Leer las respuestas

#1 solusoft
17/01/2006 - 16:10 | Informe spam
Hola,

Lo de repetir código me refiero si tengo el código del Singleton que es
prácticamente salvo el nombre de clase, y tengo varias clases Singleton, por
ejemplo ahora, si quisiera cambiar la forma de hacer el Singleton, mirando su
excelente enlace, tendría que modificar todas las clases Singleton.

Yo quería saber en ese caso si hubiera alguna forma de evitarlo, pero me
imagino que no.

Si encuentra ese enlace se lo agradecería, muchas gracias por la referencia.

Saludos.

"Alejandro Mezcua" escribió:

Hola.

No se a qué te refieres con no seguir repitiendo el código, pero si lo que
buscas es alguna versión mejorada del patrón Singleton, aquí tienes una
discusión de posibles implementaciones.

http://www.yoda.arachsys.com/csharp/singleton.html

De esa lista, yo uso normalmente la cuarta mostrada.

Existe un artículo en MSDN que explica con detalle por qué se puede
construir de esa forma, aunque no soy capaz de encontrarlo ahora.

Un saludo,

Alejandro Mezcua
MVP .NET Compact Framework
http://www.byteabyte.net/
"solusoft" wrote in message
news:
> Hola a todos,
>
> tengo este código que voy repitiendo en varias clases, y quisiera saber,
> no
> sé si será posible, si existe alguna forma de no seguir repitiendo casi
> siempre el mismo código, quizá utilizando reflexión o algún otro
> mecanismo.
>
> Quizá Katrib se haya inventado algo :-)
>
> Este es el código:
>
> private static CLASE instanciaUnica = null;
> private static object lockObject = new object();
>
> static CLASE() {}
> private CLASE() {}
>
> public static CLASE Instancia
> {
> get
> {
> if (instanciaUnica == null)
> {
> lock (lockObject)
> {
> if (instanciaUnica == null)
> {
> // Crear instancia de objeto
> instanciaUnica = new CLASE();
> }
> }
> }
> return instanciaUnica;
> }
> }
>
>
> Un saludo y gracias de antemano.



Preguntas similares