JavaScript: implementare il design pattern Singleton

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

JavaScript di Gabriele Romanato

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

Funzione che restituisce un oggetto


'use strict';

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

	const showPrivate = () => {
		console.log(privateMember);
    };

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

Esempio d'uso:


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

Funzione che restituisce un'istanza privata


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

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

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

Esempio d'uso:


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

Commenti