JavaScript: due modi per implementare il Singleton pattern

JavaScript: due modi per implementare il Singleton pattern

In JavaScript esistono diversi modi per implementare il Singleton pattern. Di seguito ne riportiamo due.

Funzione che restituisce un oggetto


const Singleton = function() {
	
	let privateMember = 'privato';

	let showPrivate = function() {
		console.log(privateMember);
    };

	return {
		publicMethod: function() {
			showPrivate();
        },
		publicMember: 'pubblico'
    };
};

Esempio d'uso:


Singleton().publicMethod(); // 'privato'

Funzione che restituisce un'istanza privata


const Singleton = (function() {
	let instance = null;
	let init = function() {
		return {
			publicMethod: function() {
				console.log('Hello World');

			},
			publicProperty: 'test'
		};
    };
	return {
		getInstance: function() {
			if (!instance) {
				instance = init();

			}
			return instance;
		}
    };
	
})();

Esempio d'uso:


Singleton.getInstance().publicMethod(); // 'Hello World'

Torna su