Was sind die einfachen Interessenentwurfsmuster in PHP?

DDD
Freigeben: 2023-08-16 15:04:07
Original
641 Leute haben es durchsucht

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.

Was sind die einfachen Interessenentwurfsmuster in PHP?

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;
    }
}
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!