Heim >Backend-Entwicklung >PHP-Problem >Was bedeutet der PHP-Singleton-Modus?

Was bedeutet der PHP-Singleton-Modus?

Guanhui
GuanhuiOriginal
2020-05-07 17:16:492519Durchsuche

Was bedeutet der PHP-Singleton-Modus?

Was bedeutet der PHP-Singleton-Modus?

Eine Klasse hat nur eine Instanz und wird nach der Instanziierung dem gesamten Programm bereitgestellt , oder es kann so verstanden werden, dass sichergestellt wird, dass es während der gesamten Programmausführung nur eine Instanz dieser Klasse gibt, und dass ein globaler Zugriffspunkt bereitgestellt wird, der darauf zugreifen kann.

Beispiel für ein PHP-Singleton-Muster

class Singleton {
    private static $_instance;//保存实例化出来的单例
//构造函数私有化,确保单例类不能通过其它对象 new 出来
    private final function __construct() {}
//定义私有的__clone()方法,这是确保单例类不能被复制或克隆,否则又不是单例了。
    private function __clone() {}
    public static function getInstance() {
//检测类是否被实例化,如果没有实例化,就 new 一下,已经实例化就直接返回。
        if ( ! (self::$_instance instanceof self) ) {
            self::$_instance = new test();
        }
        return self::$_instance;
    }
}

//拿到单例实例,多次调用都是同一个实例
Singleton::getInstance();

Vorteile

1 Zugriff auf eine einzigartige Instanz.

2. Da sich nur ein Objekt im Systemspeicher befindet, können Systemressourcen gespart werden. Der Singleton-Modus kann zweifellos die Leistung des Systems für einige Objekte verbessern, die häufig erstellt und zerstört werden müssen.

Nachteile

1. Das Singleton-Muster zerstört gängige Klassenmuster und hat keine Abstraktionsschicht, daher ist es sehr schwierig zu erweitern.

2. Der Singleton-Modus verschmutzt globale Variablen, um zur Laufzeit eindeutig zu bleiben und global zugänglich zu sein.

Das obige ist der detaillierte Inhalt vonWas bedeutet der PHP-Singleton-Modus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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