Das durch das Singleton-Entwurfsmuster gelöste Problem: Sicherstellung der Eindeutigkeit von Objekten einer Klasse im Speicher.
Zum Beispiel: Wenn mehrere Programme eine Konfigurationsdatei lesen, wird empfohlen, die Konfigurationsdatei in ein Objekt zu kapseln. Es ist praktisch, die darin enthaltenen Daten zu verarbeiten. Um sicherzustellen, dass mehrere Programme dasselbe Konfigurationsdateiobjekt lesen, muss das Konfigurationsdateiobjekt im Speicher eindeutig sein.
Die Runtime()-Methode ist ein garantiertes Objekt, das im Singleton-Entwurfsmuster entworfen wurde. Die Idee der Einzigartigkeit:
1. Lassen Sie nicht zu, dass andere Programme Objekte dieser Art erstellen.
2 Klasse;
3. Stellen Sie externe Methoden bereit, damit andere Programme dieses Objekt abrufen können.
Schritte zur Sicherstellung der Objekteindeutigkeit:
1.
Da zum Erstellen eines Objekts eine Konstruktorinitialisierung erforderlich ist, können andere Programme kein Objekt mehr erstellen, solange der Konstruktor in dieser Klasse privatisiert ist Objekt dieser Klasse; 2.Erstellen Sie ein Objekt dieser Klasse in das Klassenobjekt der Klasse;
3.
Definieren Sie eine Methode zur Rückgabe des Objekts, damit andere Programme diesen Objekttyp über die Methode erhalten können. (Funktion: steuerbar) Spiegelung des Codes:
1. Privater Konstrukteur
2. Erstellen Sie private und statische Objekte dieser Klasse
3 und statische Methode, um das Objekt zurückzugeben.
------------------------------------------------ - ------------------------------------------------- /********* Hungriger chinesischer Stil *************/ class Single(){ private Single() {} //Privater Konstruktor private static Single sg = new Single() ;//Erstelle ein privates und statisches Objekt dieser Klasse public static Single getInstance() { //Definieren Sie eine öffentliche statische Methode und geben Sie das Objekt zurück Return SG; } /*********** Lazy-Man-Stil: Lazy-Loading-Methode *********/ class Single2(){ private Single2(){} private static Single2 sg2 = null; public static Single2 getInstance(){ if( null == sg2 ){ sg2 = new Single2(); return sg2; } } }
Das obige ist der detaillierte Inhalt vonWas ist das Singleton-Entwurfsmuster?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!