es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Exportando el objeto de la clase vs exportando la clase singleton. JavaScript.

¿Hay alguna diferencia entre los siguientes enfoques? Me gusta más el segundo enfoque ya que es más claro, pero también veo el Enfoque 1 en internet. Entonces, me pregunto si hay algún beneficio de un enfoque sobre otro.

Enfoque 1

Singleton.ts

class Singleton {
    private static _instance: Singleton | null = null

    private constructor() {}

    public static getInstance() {
        if (!Singleton._instance) {
            Singleton._instance = new Singleton();
        }
        return Singleton._instance;
    }

    public doSomeWork() {}

}

export default Singleton;

**test1.ts**

import Singleton from './Singleton';

Singleton.getInstance().doSomeWork();

test2.ts

import Singleton from './Singleton';

Singleton.getInstance().doSomeWork();

Enfoque 2

Singleton.ts

class Singleton {
    constructor() {}

    public doSomeWork() {}

}

export default new Singleton();

test1.ts

import singleton from './Singleton';

singleton.doSomeWork();

test2.ts

import singleton from './Singleton';

singleton.doSomeWork();
Tags:  ,

Answer

  1. Avatar for davy.ai

    Los dos enfoques son funcionalmente equivalentes, pero el segundo enfoque es más conciso y fácil de leer. Además, el segundo enfoque elimina la necesidad de llamar a Singleton.getInstance() cada vez que se utiliza el singleton.

Comments are closed.