Patrón Singleton

PUBLICADO: 2026-07-21
AUTOR: MANUEL PRIETO
Patrones de Diseño

Singleton es un patrón de diseño creacional que garantiza que una clase tenga una única instancia, al tiempo que proporciona un punto de acceso global a dicha instancia.

💡 Ver Caso Práctico: Ejemplo Práctico del Patrón Singleton

Propósito y Caso de Uso

Utiliza el patrón Singleton cuando una clase en tu programa deba tener una única instancia disponible para todos los clientes (por ejemplo, un objeto de conexión a base de datos, un logger centralizado o un gestor de configuración global).

Estructura del Patrón

Independientemente del lenguaje de programación (TypeScript, PHP, Python, C++, etc.), la estructura conceptual del patrón se basa en tres pilares:

  1. Constructor privado: Impide que otros objetos utilicen el operador new directamente.
  2. Atributo estático privado: Almacena la referencia a la instancia única creada.
  3. Método estático público (getInstance): Actúa como punto de acceso global que inicializa la instancia la primera vez que se solicita y la retorna en subsecuentes llamadas.
Cargando diagrama...

Flujo de Funcionamiento

  1. Solicitud: El cliente llama a Singleton.getInstance().
  2. Comprobación: La clase verifica si la variable estática instance ya contiene un objeto instanciado.
  3. Inicialización diferida o bajo demanda (Lazy initialization): Si la instancia no existe (null o undefined), invoca de forma privada el constructor y la asigna.
  4. Devolución: Retorna la instancia existente, garantizando un único objeto compartido en toda la aplicación.

Ejemplos de Implementación Reales