Avatar ·

Implementación eficaz del patrón Singleton en Java

¡Hola a todos! Soy un desarrollador Java principiante y actualmente estoy estudiando patrones de diseño. Llegué a Singleton, pero me confundí en la implementación. Problema: necesito crear una clase que garantice tener solo una instancia en toda la aplicación. Escribí una versión simple con inicialización perezosa, pero no funciona correctamente en un entorno multihilo. Aquí está mi código: ```java public class ConfigManager { private static ConfigManager instance; private ConfigManager() {} public static ConfigManager getInstance() { if (instance == null) { instance = new ConfigManager(); } return instance; } } ``` Cuando ejecuto una prueba con varios hilos, a veces se crean varias instancias. Leí sobre synchronized, pero temo que afecte gravemente el rendimiento. También vi variantes con enum y bloque estático, pero no entiendo cuál se considera "correcto" y eficiente en aplicaciones modernas. Indíquenme cómo hacerlo correctamente.