PHP-Single-Interest-Designmuster umfassen: 1. Singleton-Modus im Hungry-Stil, der sich auf das Erstellen einer Instanz bezieht, wenn die Klasse geladen wird, und die anschließende direkte Rückgabe der Instanz. 2. Singleton-Modus im Lazy-Stil, bei dem die Instanz beim ersten Mal abgerufen wird call Methode wird verwendet, um eine Instanz zu erstellen, um ein verzögertes Laden zu erreichen. 3. Der Singleton-Modus mit doppelter Überprüfung, der auf dem Lazy-Singleton-Modus basiert, gewährleistet die Thread-Sicherheit durch Sperren, wodurch ein verzögertes Laden und eine Thread-Sicherheit erreicht werden Variablen speichern die Instanz in einer statischen Variablen und stellen eine statische Methode zum Abrufen der Instanz bereit, um eine einfache Thread-Sicherheit zu erreichen.
Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP-Version 8.1.3, Dell G3-Computer.
Das PHP-Singleton-Entwurfsmuster ist ein häufig verwendetes Entwurfsmuster, mit dem sichergestellt wird, dass eine Klasse nur eine Instanz hat und einen globalen Zugriffspunkt bereitstellt.
In PHP gibt es mehrere Möglichkeiten, das Singleton-Entwurfsmuster zu implementieren:
Singleton-Muster im hungrigen Stil
Das hungrig-chinesische Singleton-Muster bedeutet, beim Laden der Klasse eine Instanz zu erstellen und dann das Beispiel direkt zurückzugeben. Der Vorteil dieser Methode besteht darin, dass sie einfach zu implementieren und threadsicher ist. Der Nachteil besteht jedoch darin, dass ein verzögertes Laden nicht erreicht werden kann.
class Singleton { private static $instance = new Singleton(); private function __construct() {} public static function getInstance() { return self::$instance; } }
Lazy Singleton Pattern
Lazy Singleton Pattern bedeutet, dass eine Instanz nur erstellt wird, wenn die Methode zum Abrufen der Instanz zum ersten Mal aufgerufen wird. Der Vorteil dieses Ansatzes besteht darin, dass verzögertes Laden implementiert werden kann. Der Nachteil besteht jedoch darin, dass in einer Umgebung mit mehreren Threads Thread-Sicherheitsprobleme auftreten können.
class Singleton { private static $instance = null; private function __construct() {} public static function getInstance() { if (self::$instance == null) { self::$instance = new Singleton(); } return self::$instance; } }
Double-Check-Lock-Singleton-Modus
Double-Check-Lock-Singleton-Modus basiert auf dem Lazy-Singleton-Modus und gewährleistet Thread-Sicherheit durch Sperren. Der Vorteil dieses Ansatzes besteht darin, dass er Lazy Loading und Thread-Sicherheit erreicht, der Nachteil besteht jedoch darin, dass er die Komplexität des Codes erhöht.
class Singleton { private static $instance = null; private function __construct() {} public static function getInstance() { if (self::$instance == null) { synchronized(self::class) { if (self::$instance == null) { self::$instance = new Singleton(); } } } return self::$instance; } }
Singleton-Muster mit statischen Variablen
Singleton-Muster mit statischen Variablen bedeutet, die Instanz in einer statischen Variablen zu speichern und eine statische Methode zum Abrufen der Instanz bereitzustellen. Der Vorteil dieser Methode besteht darin, dass sie einfach zu implementieren und threadsicher ist. Der Nachteil besteht jedoch darin, dass ein verzögertes Laden nicht erreicht werden kann.
class Singleton { private static $instance = null; private function __construct() {} public static function getInstance() { if (self::$instance == null) { self::$instance = new Singleton(); } return self::$instance; } }
Das Obige sind die Implementierungsmethoden mehrerer gängiger PHP-Singleton-Entwurfsmuster. Abhängig von den spezifischen Anforderungen und Szenarien können Sie die geeignete Methode zur Implementierung des Singletons auswählen.
Das obige ist der detaillierte Inhalt vonWas sind die einfachen Interessenentwurfsmuster in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!