Publicidad:
La Coctelera

Garbage In, Garbage Out

Diseño web, tecnología, e internet.

Categoría: patrones de diseño

10 Agosto 2006

Patrón de diseño Singleton

Este patrón sirve para controlar que sólo exista un único objeto (y sólo uno) de la clase que nos interese.

Imagina que queremos tener un único objeto Padre. No puede haber más que un sólo padre. Que existieran dos padres sería un error.

Para conseguirlo hay que tener en cuenta estos aspectos:

  • Evitar la creación pública del objeto, es decir, declarar el constructor privado para que el mundo no pueda crear indefinidos objetos de este tipo.
  • Sólo se debe proporcionar una única forma de obtener el objeto. Implementando un método público que proporcione una única instancia de esta clase.
  • No se debe permitir clonar el objeto. Esto se consigue declarando la clase como final.

Ejemplo:

final class Padre {

  private static Padre s = new Padre(0);
  int hijos;

  private Padre(int h) {
    this.hijos = h;
  }

  public static Padre getInstance() {
    return s;
  }

  public int getHijos() { 
    return hijos; 
  }

  public void setHijos(int x) { 
    i = x; 
  }

}

He puesto en negrita las claves para implementar el patrón. Declarar la clase como final para evitar clonaciones, crear una instancia static de la clase, declarar el constructor private, y habilitar un único modo de obtener la instancia mediante getInstance.

servido por gigo 3 comentarios compártelo


Sobre mí

Avatar de gigo

Garbage In, Garbage Out

ver perfil »
contacto »
Desarrollador web con ganas de aprender y enseñar, porque aún queda mucho por aprender y por enseñar. Uso esta bitácora para hacer mis apuntes profesionales y de paso contribuir a ayudar a mis compañeros de, ésta, mi profesión. [guiño]

Sindicación

Fotos

gigo todavía no ha subido ninguna foto.

¡Anímale a hacerlo!

Buscar

suscríbete

Selecciona el agregador que utilices para suscribirte a este blog (también puedes obtener la URL de los feeds):

¿Qué es esto?

Crea tu blog gratis en La Coctelera