J'ai vu quelques exemples comment implémenter le modèle de conception singleton en utilisant ife dans JavaScript, mais je me demande comment la mettre en œuvre en utilisant des classes? p>
3 Réponses :
class Ex { static getInstance() { if (Ex.instance === null) { Ex.instance = new Ex(); } return Ex.instance; } } Ex.instance = null; const ex = Ex.getInstance(); console.log(ex);
Bien que vous puissiez le faire, il n'est pas nécessaire d'utiliser puis, par exemple: p> Si vous souhaitez avoir une API EM> em>, renvoyez simplement classe code> pour cela. La plupart du temps, vous pouvez simplement utiliser un objet clair
CODE> et le traiter comme un singleton:
Ceci code> ou le
mySingleton code> objet: p>
import {MySingleton} from './path/to/mysingleton';
MySingleton.init(1, 2, 3).method();
Il n'y a pas de classe en JavaScript: P>
Les classes JavaScript, introduites dans ECMAScript 2015, sont principalement syntaxiques du sucre syntaxiste sur l'héritage existant sur le prototype existant de JavaScript. La syntaxe de classe n'introduit pas un nouveau modèle d'héritage orienté objet vers JavaScript. P> blockQuote>
Le point est qu'il est impossible de définir des méthodes publiques ou privées en JavaScript, tandis que Singleton Motif est basé sur l'encapsulation avec un constructeur privé et un accesseur public. P>