名前: シングルトン デザイン パターン、シングルトン デザイン パターン、シングルトン デザイン パターン (インタビュー中の質問に混乱しないでください)
コンセプト: シングルトン (シングル ケース) パターンの主な機能は、オブジェクト プログラミング言語で設計および作成されたプログラムでは、クラス Class のインスタンスは 1 つだけ存在します。
使用法: ディレクトリやデータベース接続の確立など、多くの操作では、このようなシングルスレッド操作が必要です。
実装方法:
(1) クラスにオブジェクトを 1 つだけ持たせたい場合は、まずオブジェクトの作成と複製 (__clone) を不可能にする必要があるため、コンストラクターと clone メソッドを追加する必要がありますPrivatization
(2) オブジェクトを作成するためにクラスに静的メソッドを提供します
(3) インスタンス化されたオブジェクトを保存するためにクラスに静的プロパティを提供します (オブジェクトが存在する場合、それはインスタンス化されなくなるため、オブジェクトが保証されます)インスタンス化されるのは 1 回だけです)
例:
class Instance { //静态变量保存全局实例 private static $_instance = null; //私有构造函数,防止外界实例化对象 private function __construct() { echo '看我出现几次,就说明我被创建了几次<hr>'; } //私有克隆函数,防止外办克隆对象 private function __clone() {} //静态方法,单例模式统一访问入口 static public function getInstance() { if (is_null(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; }}Instance::getInstance();Instance::getInstance();Instance::getInstance();