この記事では、PHP シングルトン モードの詳細な紹介を中心に、シングルトン モードの概念、シングルトン モードの特徴、シングルトン モードを使用する理由とシナリオ、および PHP シングルトンについて説明します。サンプルモードのコード例、必要な友達はそれを参照してください
シングルトンパターンの概念
シングルトンパターンとは、あるクラスがアプリケーション全体でオブジェクトインスタンスを一つだけ持つ設計パターンを指します。具体的には、オブジェクト作成の方法として、シングルトン パターンは、クラスがインスタンスを 1 つだけ持つことを保証し、クラス自体をインスタンス化し、このインスタンスをシステム全体にグローバルに提供します。インスタンスのコピーは作成されませんが、シングルトン クラスの内部に格納されているインスタンスへの参照を返します。
シングルトンパターンの特徴
シングルトン モデルの主な特徴は、「3 つのプライベートと 1 つのパブリック」です:
クラスの唯一のインスタンスを保持するプライベート静的メンバー変数が必要です
外部プログラムが新しいオブジェクトを作成してシングルトンの意味を失うことを防ぐために、コンストラクターはプライベートとして宣言する必要があります
オブジェクトが複製されないようにするには、クローン関数をプライベートとして宣言する必要があります
このインスタンスにアクセスするには、パブリック静的メソッド (通常は getInstance という名前) を提供する必要があります。これにより、一意のインスタンスへの参照が返されます。
シングルトン モードを使用する理由とシナリオ
PHP のほとんどのアプリケーションでは、シングルトン モードを使用しない場合、毎回新しい操作が必要になりますが、そのたびに大量のシステム リソースとメモリ リソースが消費され、データベースが消費されます。毎回開かれたり閉じられたりするのは素晴らしいテストであり、データベースにとって無駄です。したがって、シングルトン パターンはデータベース操作クラスでよく使用されます。
同様に、システム内の特定の構成情報をグローバルに制御するためにクラスが必要な場合は、シングルトン モードを使用して簡単に実装できます。
PHPシングルトンパターンの実装
以下はPHPシングルトンモードでデータベース操作クラスを実装するためのフレームワークです
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
クラスDB{ const DB_HOST='ローカルホスト'; const DB_NAME=''; const DB_USER=''; const DB_PWD=''; プライベート $_db; //インスタンスのプライベート静的変数を保存します プライベート静的 $_instance; //コンストラクターとクローン関数はプライベートとして宣言されます プライベート関数 __construct(){ //$this->db=mysql_connect(); } プライベート関数 __clone(){ //実装 } //インスタンスのパブリック静的メソッドにアクセスします パブリック静的関数 getInstance(){ if(!(self::$_instanceinstanceofself)){ self::$_instance=新しいself(); } //または if(self::$_instance===null){ self::$_instance=new Db(); } self::$_instance を返す; } パブリック関数 fetchAll(){ //実装 } パブリック関数 fetchRow(){ //実装 } } //クラス外からインスタンス参照を取得します $db=Db::getInstance(); ?> |