Bei der Verwendung des CI-Frameworks werden Sie feststellen, dass die Supervariable $ci als Referenz und Wert übergeben wird. Sie erhalten über get_instance() immer dasselbe CI-Objekt .
Lassen Sie uns die Vorteile dieser Vorgehensweise vorstellen:
Das Singleton-Muster wird als Verantwortungsmuster betrachtet, das zum Erstellen eines einzelnen funktionalen Zugriffspunkts in der Anwendung verwendet wird.
Es delegiert die Kontrolle über die Objekterstellung an einen einzigen Zugriffspunkt. In der Anwendung ist zu jedem Zeitpunkt nur eine Instanz dieser Klasse vorhanden.
Dies verhindert, dass wir mehrere Verbindungen zur Datenbank öffnen oder unnötige Systemressourcen verbrauchen.
In komplexeren Systemen ist die Verwendung des Singleton-Musters auch besonders nützlich, um die Synchronisierung des Anwendungsstatus aufrechtzuerhalten.
Alle Singleton-Klassen haben mindestens die folgenden drei öffentlichen Elemente: Sie müssen einen Konstruktor haben und müssen als privat markiert sein. Sie verfügen über eine statische Mitgliedsvariable, die eine Instanz der Klasse enthält.
Sie verfügen über eine öffentliche statische Methode, um auf diese Instanz zuzugreifen:
Singleton-Klassen können nicht direkt in anderen Klassen instanziiert werden. Eine Singleton-Klasse kann nur für sich selbst instanziiert werden.
Um ein solches Ergebnis zu erhalten, muss die Methode __construct() als privat markiert werden. Wenn Sie versuchen, eine Klasse mit einem privaten Konstruktor zu erstellen, erhalten Sie einen Fehler hinsichtlich der Barrierefreiheit.
Damit eine Singleton-Klasse funktioniert, muss sie eine Instanz für andere Klassen bereitstellen und diese zum Aufrufen verschiedener Methoden verwenden.
Die Singleton-Klasse erstellt keine Kopie der Instanz, sondern gibt einen Verweis auf die in der Singleton-Klasse gespeicherte Instanz zurück.
Das Ergebnis ist, dass die Singleton-Klasse keine Speicher- und Systemressourcen dupliziert, sodass andere Teile der Anwendung diese Ressourcen besser nutzen können.
Als Teil dieses Musters muss eine leere private __clone()-Methode erstellt werden, um zu verhindern, dass das Objekt kopiert oder geklont wird. Diese Methode, die eine Instanzreferenz zurückgibt, heißt normalerweise getTnstance(). Diese Methode muss statisch sein und muss instanziiert werden, sofern sie noch nicht instanziiert ist.
Die Methode getInstance() kann mithilfe des Operators „instanceof“ und des Schlüsselworts „self“ erkennen, ob eine Klasse instanziiert wurde.
Dieser Artikel wird von der chinesischen PHP-Website bereitgestellt und erläutert, warum Sie den Singleton-Modus verwenden sollten.
Artikeladresse: http://www.php.cn/php-weizijiaocheng-377485.html
Lernen Sie Programmieren auf der chinesischen PHP-Website www.php.cn
Das obige ist der detaillierte Inhalt vonAnalyse der Vorteile der Verwendung von Singleton-Musterdesign im CI-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!