JavaScript: implementare il design pattern Singleton

JavaScript: implementare il design pattern Singleton

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'

Torna su