Heim >Web-Frontend >js-Tutorial >Javascript implementiert Singleton-Modus_Javascript-Fähigkeiten
Der Singleton-Modus wird auch als Monadenmodus und häufiger auch als Singleton-Modus bezeichnet. Es handelt sich um ein relativ einfaches, aber am häufigsten verwendetes Entwurfsmuster im Softwaredesign.
Einführung in den Singleton-Modus:
Bei der Anwendung des Singleton-Musters muss die Klasse, die den Singleton generiert, sicherstellen, dass nur eine Instanz vorhanden ist. In vielen Fällen muss das gesamte System nur über ein globales Objekt verfügen, um das Gesamtverhalten des Systems zu koordinieren. In der Konfigurationsdatei des gesamten Systems gibt es beispielsweise ein Singleton-Objekt zum einheitlichen Lesen und Ändern. Wenn andere Objekte Konfigurationsdaten benötigen, erhalten sie die Konfigurationsdaten auch über dieses Singleton-Objekt Umgebungen.
Die Idee des Singleton-Musters ist: Eine Klasse kann einen Verweis auf ein Objekt (und es wird immer dasselbe sein) und eine Methode zum Abrufen der Instanz (statische Methode, normalerweise unter Verwendung des Namens getInstance) zurückgeben. Wenn wir diese Methode aufrufen, wird die Referenz zurückgegeben, wenn die von der Klasse gehaltene Referenz nicht leer ist. Andernfalls wird eine Instanz der Klasse erstellt und die Instanzreferenz der von der Klasse gehaltenen Referenz zugewiesen dann zurückgekehrt. Definieren Sie gleichzeitig den Konstruktor der Klasse als private Methode, um zu verhindern, dass andere Funktionen den Konstruktor zum Instanziieren des Objekts verwenden, und erhalten Sie die einzige Instanz der Klasse nur über die statische Methode der Klasse.
Im Allgemeinen generiert Javascript jedes Mal eine Instanz, wenn ein neues Objekt erstellt wird, und die Instanz zeigt auf eine andere Adresse. So:
(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(); }());
Oben sieht jedes Mal anders aus, wenn ein neues Personenobjekt erstellt wird.
Wie implementiert man ein Singleton-Muster in Javascript?
--Bestimmen Sie beim Generieren eines Objekts zunächst, ob es existiert. Wenn es existiert, wird das Objekt nicht generiert; wenn es nicht existiert, wird das Objekt generiert.
(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(); }());
Oben ist die über die getInstance-Methode des PsonSingleton-Objekts erhaltene Instanz jedes Mal dieselbe.
Das ist das gesamte relevante Wissen über den JavaScript-Singleton-Modus. Ich hoffe, es wird für alle hilfreich sein.