Patrones de Diseño - Patrón Singleton - ¿Que es el Patrón de Diseño Singleton?

Hola! Ya terminando los patrones de diseño estructurales, hoy vamos a comenzar a ver los patrones de diseño creacionales, vamos a empezar por uno de los mas sencillos el patrón Singleton.

Patrones de Diseño -  ¿Que es el Patrón de Diseño Singleton?

El patrón de diseño Singleton su funcion es limitar el máximo número de instancias de una clase en exactamente solo una. En este caso, si más de un objeto necesita utilizar una instancia de la clase Singleton, esos objetos comparten la misma instancia de la clase Singleton. 

Generalmente este patrón se lo utiliza en los loggers, en una única session de usuario, una instancia única global de una clase.

Diagrama UML:

Patrones de Diseño - Patrón Singleton - ¿Que es el Patrón de Diseño Singleton?


SingletonSession: Es una sesión que posee un atributo con referencia hacia ella misma.

Nombre del patrón:
Patrón Singleton

Clasificación del Patrón:
Creacional

Intención:
Sirve para eliminar la multiples instancias de una misma clase global.

Ejemplo:
Problema: Actualmente se posee una aplicación y se requiera que la misma no permita generar varias instancia de la clase session.

Solución:
Al leer el problema descubrimos que necesitamos un patrón singleton ya que en el mismo sistema solo se usara un tipo de session, para realizar este patrón, creamos un clase la cual contenga una propiedad de sus mismo tipo.

Luego declaramos el constructor privado, a modo que no se puede obtener una nueva instancia de la clase por medio del new desde fuera de la clase, finalmente agregamos un método con el cual se obtenga la instancia y en el caso que no exista la crea.

SessionSingleton
package ar.com.patronesdisenio.singleton;

/**
* @author usuario
*/
public class SessionSingleton {

private static SessionSingleton ss;
private String user;

private SessionSingleton(){

}

public static SessionSingleton obtenerInstancia(){
if (null == ss){
ss = new SessionSingleton();
}
return ss;
}

public String getUser() {
return user;
}

public void setUser(String user) {
this.user = user;
}
}


Main
package ar.com.patronesdisenio.singleton;

/**
* @author nconde
*/
public class Main {

/**
* @param args
*/
public static void main(String[] args) {

SessionSingleton session1 = SessionSingleton.obtenerInstancia();
session1.setUser("nconde");

System.out.println("Session1, Usuario: " + session1.getUser() );
SessionSingleton session2 = SessionSingleton.obtenerInstancia();
System.out.println("Session2, Usuario: " + session2.getUser() );


}

}


Patrones de Diseño - Patrón Singleton - ¿Que es el Patrón de Diseño Singleton? Patrones de Diseño - Patrón Singleton - ¿Que es el Patrón de Diseño Singleton? Reviewed by El lado oscuro de java on octubre 23, 2014 Rating: 5

No hay comentarios:

Con la tecnología de Blogger.