Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura

Patrón Singleton en Java explicado

Descubre cómo implementar el patrón de diseño Singleton en Java con ejemplos prácticos, asegurando una única instancia en toda tu aplicación.

En Java, el patrón Singleton garantiza que una clase tenga solo una instancia y proporciona un punto de acceso global a ella.

Para crear un Singleton robusto, una clase debe incluir:


Ejemplo: Sintaxis de clase Singleton en Java

class EjemploSingleton { // Referencia a la única instancia private static EjemploSingleton instanciaUnica; // Constructor privado previene instanciación externa private EjemploSingleton() { // Código de inicialización aquí } // Punto de acceso global con inicialización perezosa public static EjemploSingleton getInstance() { if (instanciaUnica == null) { instanciaUnica = new EjemploSingleton(); } return instanciaUnica; } } 

Explicación de los componentes:


Cuándo usar Singletons en Java

Los Singletons brillan en escenarios que requieren un recurso compartido único, como un pool de conexiones a base de datos, gestor de configuración o logger. Por ejemplo, un helper de base de datos puede asegurar que solo una conexión esté activa para todos los clientes:

class BaseDatos { private static BaseDatos objBD; private BaseDatos() { // Constructor privado } public static BaseDatos getInstance() { if (objBD == null) { objBD = new BaseDatos(); } return objBD; } public void getConexion() { System.out.println("Ahora estás conectado a la base de datos."); } } class Main { public static void main(String[] args) { BaseDatos bd1 = BaseDatos.getInstance(); bd1.getConexion(); } } 

El programa produce:

Ahora estás conectado a la base de datos.

Conclusiones clave de este ejemplo:

Singleton es un patrón de diseño, no una característica del lenguaje Java. Es una técnica de codificación reutilizable documentada en Design Patterns: Elements of Reusable Object‑Oriented Software de Gamma et al.

Usa Singletons con moderación. Son más apropiados para recursos sin estado o de estado compartido como logging o configuración. Si no estás seguro, considera alternativas como inyección de dependencias o una simple clase utilitaria estática. Para mayor profundidad, lee What is so bad about Singleton?.

Java

  1. Palabra clave final en Java: Variables, métodos y clases
  2. Operador instanceof en Java: Guía completa
  3. Dominando la herencia en Java: Conceptos, tipos y ejemplos prácticos
  4. Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
  5. Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
  6. Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
  7. Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos
  8. Dominando Java Generics: Construyendo Código Reutilizable y Type-Safe
  9. Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación
  10. Domina Java: Entendiendo Objetos, Clases y Conceptos Básicos de POO
  11. Serialización de Objetos en Java: Persistencia y Restauración de Objetos