El patrón Singleton:
Se asegura que una clase tenga una unica instancia, y provee un punto de acceso global a esta.
El singleton basico :
class
Singleton
{
private
static Singleton
uniqueInstance;
private
Singleton() { }
public static Singleton
getInstance()
{
if
(uniqueInstance == null)
{
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}
En el siguiente ejemplo veremos como se puede utilizar el singleton para tener un solo buscador a la base de datos para evitar el desperdicio de una memoria. Como veremos la utilización es un caso real puede diferir del caso ideal.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
namespace PlataformaIndicadores
{
/// <summary>
/// Clase Ejemplo de singleton
/// </summary>
public class BuscadorBD
{
static PlataformaIndicadoresBDContainer1
BDPlataforma = null;
/// Importante no olvidar el private a la unica instancia o no tendria sentido el singleton
private static BuscadorBD singletonBuscador =null;
/// Importante no olvidar el private en el constructor.
private BuscadorBD(){
}
/// <summary>
/// Singleton del buscador. Podemos pasar informacion si la necesitamos. ( esta es una de las formas).
/// </summary>
/// <param
name="plataforma"></param>
/// <returns></returns>
public static BuscadorBD getInstance(PlataformaIndicadoresBDContainer1
plataforma){
BDPlataforma = plataforma;
/// Revisa si la instancia esta creada, si no la crea.
if(singletonBuscador==null){
singletonBuscador= new BuscadorBD();
}
/// Devuelve el objeto con su unica instancia.
return singletonBuscador;
}
}
Espero que les haya ayudado en la utilizacion de este patron que aun siendo de los mas sencillos puede cambiar ya en un caso aplicado.
Comentarios
Publicar un comentario