Heim > Artikel > Backend-Entwicklung > 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;
(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()方法,禁止克隆
(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;
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
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!