Le mode singleton est également appelé mode monade, et plus communément il est également appelé mode singleton. Il s’agit d’un modèle de conception relativement simple mais le plus couramment utilisé dans la conception de logiciels.
Introduction au mode singleton :
Lors de l'application du modèle singleton, la classe qui génère le singleton doit garantir qu'une seule instance existe. Dans de nombreux cas, l'ensemble du système n'a besoin que d'un seul objet global pour coordonner le comportement global du système. Par exemple, dans le fichier de configuration de l'ensemble du système, les données de configuration ont un objet singleton pour une lecture et une modification unifiées. Lorsque d'autres objets ont besoin de données de configuration, ils obtiennent également les données de configuration via cet objet singleton, ce qui peut simplifier la configuration de manière complexe. environnements.
L'idée du modèle singleton est la suivante : une classe peut renvoyer une référence à un objet (et ce sera toujours la même) et une méthode pour obtenir l'instance (méthode statique, utilisant généralement le nom getInstance). Ensuite, lorsque nous appellerons cette méthode, si la référence détenue par la classe n'est pas vide, la référence sera renvoyée. Sinon, une instance de la classe sera créée, et la référence d'instance sera affectée à la référence détenue par la classe et. puis revint. En même temps, définissez le constructeur de la classe comme une méthode privée pour empêcher d'autres fonctions d'utiliser le constructeur pour instancier l'objet, et obtenez uniquement la seule instance de la classe via la méthode statique de la classe.
Généralement, Javascript génère une instance à chaque fois qu'un nouvel objet est créé, et l'instance pointe vers une adresse différente. Comme ça :
(function(){ function Person(name){ this.name = name; } Person.prototype.work = function(){ console.log(this.name + " is working"); } var p1 = new Person("Darren"); p1.work(); var p2 = new Person("Jack"); p2.work(); }());
Ci-dessus, chaque fois qu'un nouvel objet Person est créé, il sera différent.
Comment implémenter un modèle singleton en Javascript ?
--Lors de la génération d'un objet, déterminez d'abord s'il existe. S'il existe, l'objet ne sera pas généré ; s'il n'existe pas, l'objet sera généré.
(function(){ var PersonSingleton = (function(){ var instance; function init(){ return { name: 'Anonymous', work: function(){ console.log(this.name + ' working'); } }; } return { getInstance: function(){ if(!instantiated){ instantiated = init(); } return instantiated; } } })(); var p1 = PersonSingleton.getInstance(); p1.work(); var p2 = PersonSingleton.getInstance(); p2.work(); }());
Ci-dessus, l'instance obtenue via la méthode getInstance de l'objet PsonSingleton est la même à chaque fois.
C'est toutes les connaissances pertinentes sur le mode JavaScript singleton qui sont présentées ici. J'espère que cela sera utile à tout le monde.