El patrón de diseño Singleton

El patrón de diseño Singleton es uno de los más sencillos y utilizados de los que se presentaron en el catalogo de los Gang Of Four (y no es del grupo de lo que hablamos ;-)) y lo que pretende es asegurar que solo exista una instancia de una clase.

El patrón Singleton, se implementa creando un método que cree una instancia de un objeto, solo si esta no está creada. Para asegurar esto, el constructor deberá ser privado.

Este patrón lleva a cabo su propósito por:

  • La clase es la responsable de la creación de la instancia
  • Permite el acceso global a dicha instancia mediante un método de clase.
  • El constructor es privado para que no se instancia directamente.

Las situaciones más habituales de aplicación de este patrón son aquellas en las que dicha clase controla el acceso a un recurso físico único (como puede ser el ratón o un archivo abierto en modo exclusivo) o cuando cierto tipo de datos debe estar disponible para todos los demás objetos de la aplicación.

Su implementación se realizaría de la siguiente manera:

public class Singleton
{
private static Singleton Instance = null;
private Singleton() {}
[MethodImpl(MethodImplOptions.Synchronized)]
private static void CreateInstance()
{
if (Instance == null)
{
Instance = new Singleton();
}
}
public static Singleton GetInstance()
{
if (Instance == null) CreateInstance();
return Instance;
}
}

Enlaces relacionados

Otros patrones de diseño en A deshoras

Un pensamiento en “El patrón de diseño Singleton

  1. El patron de diseño Lazy Loading « a deshoras

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s