Wzorzec konstrukcyjny Singleton w JavaScript

Jest to wzorzec ograniczający utworzenie tylko jednej instancji
obiektu. Raz stworzona instancja już zawsze będzie zwracana jako referencja np. przy próbie stworzenia kolejnej.

Zwykle stosuje się singleton przy:
– obiektach konfiguracyjnych, będących zbiorem podstawowych danych dla całej aplikacji
– połączeniach np z bazą danych, zwykle jedno jest wystarczające
– zapisywania logów z aplikacji, jedna instancja gwarantuje brak duplikatów komunikatów

Przykład:

 let Singleton = (function(){
    let instance = null;
    let privLanguage = "en";

    function Configuration() { 
        this.getLanguage = function() { return privLanguage;  }
        this.setLanguage = function(lang) { privLanguage = lang;  }
    }

    return {
        getInstance: function () {
            if(!instance) {
                instance = new Configuration();
            }
            return instance;
        }
    }
})();

Singleton.getInstance().getLanguage(); 
// en
let config = Singleton.getInstance();
config.setLanguage("pl");
config.getLanguage(); // pl


let config2 = Singleton.getInstance();
config.getLanguage(); // pl

Jak widać singleton pilnuje aby była tylko jego jedna instancja niezależnie od ilości pobrania referencji do singletona.
KW

 

Scroll to Top