DEV Community

alexfloresf
alexfloresf

Posted on

Patrones de Diseño y el Patrón Singleton en JavaScript

Los patrones de diseño son soluciones reutilizables a problemas comunes en el desarrollo de software. Ayudan a diseñar software más robusto, flexible y mantenible. Los patrones de diseño se dividen en tres categorías principales:

**Patrones Creacionales**: Se enfocan en la forma en que se crean los objetos.

**Patrones Estructurales**: Se centran en la composición de clases y objetos.

**Patrones de Comportamiento**: Enfocados en la interacción y responsabilidad entre los objetos.
Enter fullscreen mode Exit fullscreen mode

El Patrón Singleton

El patrón Singleton es un patrón creacional que garantiza que una clase tenga una única instancia y proporciona un punto de acceso global a esa instancia. Es útil cuando se necesita un único objeto para coordinar acciones en todo el sistema, como la gestión de la configuración o el manejo de conexiones a bases de datos.
Implementación en JavaScript

En JavaScript, podemos implementar un Singleton utilizando una clase y asegurándonos de que sólo se pueda crear una instancia de ella. Aquí hay un ejemplo:

class Singleton {
    constructor() {
        if (Singleton.instance) {
            return Singleton.instance;
        }
        Singleton.instance = this;
        this.data = "Singleton Data";
        return this;
    }

    getData() {
        return this.data;
    }

    setData(data) {
        this.data = data;
    }
}

// Uso del Singleton
const singleton1 = new Singleton();
console.log(singleton1.getData()); // Output: Singleton Data

const singleton2 = new Singleton();
singleton2.setData("New Singleton Data");

console.log(singleton1.getData()); // Output: New Singleton Data
console.log(singleton1 === singleton2); // Output: true

Enter fullscreen mode Exit fullscreen mode

En este ejemplo, la clase Singleton utiliza una propiedad estática (Singleton.instance) para almacenar su única instancia. El constructor verifica si Singleton.instance ya existe y, si es así, devuelve esa instancia en lugar de crear una nueva. Esto asegura que siempre se use la misma instancia del Singleton.
Cuándo Usar el Patrón Singleton

El patrón Singleton es útil en situaciones donde se necesita controlar el acceso a recursos compartidos, como:

Gestión de configuraciones.

Manejo de conexiones a bases de datos.

Registro de logs.
Enter fullscreen mode Exit fullscreen mode

Sin embargo, hay que usarlo con precaución, ya que puede introducir dependencias globales en la aplicación, lo cual puede dificultar las pruebas y la mantenibilidad del código.

Espero que este post te sea útil para entender y aplicar el patrón Singleton en tus proyectos de JavaScript. ¡Feliz programación! 🚀

Top comments (0)