Saltar al contenido principal
Volver a Patrones y Buenas Prácticas

Patrones y Buenas Prácticas — Leccion 1

·15 min

Patrón Singleton

Asegura una única instancia de una clase.

Singleton

El patrón Singleton asegura que solo exista una instancia de una clase.

typescript
class Database {
  private static instance: Database;

  private constructor(private url: string) {}

  static getInstance(): Database {
    if (!Database.instance) {
      Database.instance = new Database("mongodb://localhost");
    }
    return Database.instance;
  }

  query(sql: string) {
    console.log(`Ejecutando: ${sql}`);
  }
}

const db1 = Database.getInstance();
const db2 = Database.getInstance();
console.log(db1 === db2); // true

Cuando usarlo

  • Conexiones a base de datos

  • Configuración global

  • Cache compartida

  • Logger

Alternativa moderna

typescript
// Module-level singleton (más simple)
const database = new Database("mongodb://localhost");
export default database;

// En otro archivo
import database from "./database";

Ejercicio pratico

Implementa un Singleton para una clase Config.

exercise.ts
Loading...
Resultado

Haz clic en "Ejecutar" para ver el resultado...

Curso de TypeScript — Aprende desde cero