Singleton: Mejorado

El Singleton, que presenté en mi entrada anterior es la implementación más común de un Singleton, sin embargo aun tiene algunos defectos, entre ellos está es que si esa clase la hacemos serializable, en cada ejecución se crearían diferentes instancias del singleton y tendríamos que crear un método para proteger esto. Y también tenemos el problema de que se puede accesar al constructor privado utilizando el API Reflection. Entonces aquí tenemos una forma más elegante de crear un Singleton:







public enum Singleton {

INSTANCE;

public void doSomething() {

}

}





Y luego cuando lo quisieramos usar, lo único que tendríamos que hacer sería esto:




public class Principal {

public static void main(String[] args) {
Singleton.INSTANCE.doSomething();
}

}




Y con eso tenemos una mejor y más sencilla implementación de un Singleton que nos garantiza que siempre será una única instancia.
SaludoSS!



Referencias:

Blooch, J. Effective Java 2nd Edition

0 comments:

Post a Comment