Singleton - Tensho97/Aprende-a-Aprender GitHub Wiki
Patrón Singleton
Usos y Ventajas
- Utilidad
-Asegurar que una clase tiene una sola instancia y proporcionar un punto de acceso global a ella.
- Ventajas
-Es necesario cuando hay clases que tiene que gestionar de manera centralizada un recurso.
-Una variable global no garantiza que sólo se instancie una vez.
Como se hace?
-El constructor de la clase DEBE SER PRIVADO.
-Se proporciona un método ESTÁTICO en la clase que devuelve LA ÚNICA INSTANCIA DE LA CLASE: getInstance()
public class CSingleton {
//atributo
private static CSingleton laInstancia = new CSingleton;
//constructor
private CSingleton(){
}
//metodo
public static CSingleton getInstance(){
return laInstancia;
}
}
Inconvenientes
Se podría obtener una nueva instancia usando el esquema anterior:
//Se define una nueva clase que extienda del patron e implemente cloneable.
public class MiCSingleton extends CSingleton implements Cloneable{}
----
//En una aplicacion crea un objeto de tu neva clase que extiende de singleton
MiCSingleton mcs = new MiCSingleton();
//Usando el metodo clone() proporcionado por la interface obtenemos una nueva instancia
MiCsingleton mcsCopia = mcs.clone();
Para solucionar esto: definimos la clase que usamos para el patrón como final :
public final class CSingleton {. . .}
Autor : Miguel