Patrones de Diseño – Singleton
El Patrón de Diseño Singleton (en español, Instancia Única) se utiliza para garantizar que una clase sólo tenga una única instancia y para facilitar un punto de acceso global a la misma.
Se utiliza cuando se necesita :
- que sea un único objeto el que coordine acciones a lo largo de todo el sistema
- que el objeto posea estado
- variables globales en el sistema (es más limpio y eficiente utilizar Singleton)
La propia clase es única responsable de crear la única instancia (ocultando al constructor) y de facilitar el acceso global a la instancia. Un ejemplo de implementación en Java :
public class Singleton {
//Instancia como variable estática
private static Singleton instanciaUnica;
//Constructor privado : no se puede acceder desde fuera
private Singleton() {}
//Método para obetener una instancia
public static Singleton getInstancia() {
synchronized(Singleton.class) {
if (instanciaUnica == null) {
instanciaUnica = new Singleton();
}
}
return instanciaUnica;
}
}
Es delicado en sistemas multihilo, ya que si dos hilos de ejecución intentarán crear una instancia al mismo tiempo y ésta no existiese todavía, sólo uno de los dos debería de lograrlo. La solución clásica para este problema es utilizar exclusión mutua en el método de creación de la clase que implementa el patrón.
En algunas ocasiones se aplica este patrón de una forma menos restrictiva, permitiendo que exista un número máximo de instancias en lugar de una única.
También te puede interesar:
- Patrones de Diseño – Façade El Patrón de Diseño Façade (o Facade, o en español Fachada) es en mi opinión uno de los más básicos y simples, que todos hemos...
- Variables Globales en Clases Singleton Bueno, evidente es un error utilizar variables globales en clases singleton, ya que nos quedamos sin multi-thread. Me explico. Si utilizamos una única instancia de...
- 4 conceptos imprescindibles de Diseño para Construir Software En mis años de aprendizaje en mi escuela aprendí que la construcción de un software de calidad se basaba en dos pilares, la modularidad y...
- Administración : Diseño Llamaremos a la aplicación administracion . Para implementar las acciones necesitamos en la parte java : Dos clases Action, una para cada acción que queremos...
- Diseño top-down, o cómo jugar al Golf Llevo toda una vida pensando primero de arriba a abajo, de lo general a lo particular, es decir primero visualizo el problema, exploro la solución...






























