Heim Backend-Entwicklung PHP-Tutorial Nutzungsszenarien und Nutzungsmethoden für den PHP-Singleton-Modus

Nutzungsszenarien und Nutzungsmethoden für den PHP-Singleton-Modus

Jul 03, 2020 pm 05:47 PM
php 单例模式

Nutzungsszenarien und Nutzungsmethoden für den PHP-Singleton-Modus

Eine Klasse hat nur eine Objektinstanz

1. Bedeutung

Als Objekterstellungsmodus stellt der Singleton-Modus sicher, dass eine Klasse nur eine hat Instanziieren Sie diese selbst und stellen Sie diese Instanz global dem gesamten System zur Verfügung. Es wird keine Kopie der Instanz erstellt, sondern eine Referenz auf die in der Singleton-Klasse gespeicherte Instanz zurückgegeben.

Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Kompetenz

Drei wichtige Punkte des Singleton-Modus:

( 1). Eine statische Mitgliedsvariable wird benötigt, um die einzige Instanz der Klasse zu speichern:

private static $_instance;
Nach dem Login kopieren

(2) Der Konstruktor und die Klonfunktion müssen als privat deklariert werden, um zu verhindern, dass externe Programme neue Klassen erstellen und dadurch verlieren Bedeutung des Singleton-Modus. :

private function __construct(){
    $this->_db = pg_connect('xxxx');
}

private function __clone(){
}//覆盖__clone()方法,禁止克隆
Nach dem Login kopieren

(3) Für den Zugriff auf diese Instanz muss eine öffentliche statische Methode bereitgestellt werden, wodurch ein Verweis auf die eindeutige Instanz zurückgegeben wird

public static function getInstance(){

if(! (self::$_instance instanceof self) ){ 
    self::$_instance = new self();
}
return self::$_instance;
Nach dem Login kopieren

Einzelfallmodus Stellen Sie sicher, dass eine Klasse nur eine Instanz hat, sich selbst instanziiert und diese Instanz dem gesamten System bereitstellt.

Das Singleton-Muster ist ein gängiges Entwurfsmuster. In Computersystemen werden Thread-Pools, Caches, Protokollobjekte, Dialogfelder, Drucker, Datenbankoperationen und Grafikkartentreiber häufig als Singletons entworfen.

Es gibt drei Arten von Singleton-Modi: Singleton im Lazy-Stil, Singleton im Hungrig-Stil und Singleton im Registrierungsstil.

Der Singleton-Modus weist die folgenden drei Merkmale auf:

1. Es kann nur eine Instanz geben.

2. Sie müssen diese Instanz selbst erstellen.

3. Diese Instanz muss anderen Objekten bereitgestellt werden.

Warum also das PHP-Singleton-Muster verwenden?

Eines der Hauptanwendungsszenarien von PHP ist das Szenario, in dem die Anwendung die Datenbank verarbeitet. In einer Anwendung gibt es eine große Anzahl von Datenbankoperationen für das Verbindungsverhalten des Datenbankhandles Durch die Verwendung des Singleton-Modus kann eine große Anzahl neuer Vorgänge vermieden werden. Denn jeder neue Vorgang verbraucht System- und Speicherressourcen.

class Single {
private $name;//声明一个私有的实例变量
private function __construct(){//声明私有构造方法为了防止外部代码使用new来创建对象。
}
static public $instance;//声明一个静态变量(保存在类中唯一的一个实例)
static public function getinstance(){//声明一个getinstance()静态方法,用于检测是否有实例对象
if(!self::$instance) self::$instance = new self();
return self::$instance;
}
public function setname($n){ $this->name = $n; }
public function getname(){ return $this->name; }
}
$oa = Single::getinstance();
$ob = Single::getinstance();
$oa->setname('hello world');
$ob->setname('good morning');
echo $oa->getname();//good morning
echo $ob->getname();//good morning
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonNutzungsszenarien und Nutzungsmethoden für den PHP-Singleton-Modus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

CakePHP erstellt Validatoren

See all articles