ホームページ >バックエンド開発 >PHPチュートリアル >PHPシングルトンモードの概念と特徴

PHPシングルトンモードの概念と特徴

墨辰丷
墨辰丷オリジナル
2018-06-09 10:40:421951ブラウズ

この記事では主に PHP シングルトン モードの概念と特徴を紹介します。興味のある方はぜひ参考にしてください。

シングルトン モードの概念

シングルトン モードとは、特定のクラスがアプリケーション全体でオブジェクト インスタンスを 1 つだけ持つ設計パターンを指します。具体的には、オブジェクト作成の方法として、シングルトン パターンは、クラスがインスタンスを 1 つだけ持つことを保証し、クラス自体をインスタンス化し、このインスタンスをシステム全体にグローバルに提供します。インスタンスのコピーは作成されませんが、シングルトン クラスの内部に格納されているインスタンスへの参照を返します。

シングルトン モードの特徴

シングルトン モードの主な機能は、「3 つのプライベートと 1 つのパブリック 」です。
保存クラスが必要です。唯一のインスタンスの private static メンバー変数
コンストラクター
は、外部プログラムがオブジェクトを新規作成してシングルトンの意味を失うことを防ぐために、private として宣言する必要があります
clone 関数 を宣言する必要があります。 プライベートであるため、オブジェクトのクローンが作成されないようにします。
は、このインスタンスにアクセスするための パブリック静的メソッド (通常は getInstance という名前) を提供する必要があります。これにより、一意のインスタンスへの参照が返されます。

シングルトン モードを使用する理由とシナリオ

PHP のほとんどのアプリケーションでは、シングルトン モードを使用しない場合、多数のデータベース操作が行われます。その後、毎回新しい操作が必要になりますが、新しい操作のたびに多くのシステム リソースとメモリ リソースが消費され、データベースを開いたり閉じたりするたびに、それは大きなテストとなり、データベースの無駄になります。したがって、シングルトン パターンはデータベース操作クラスでよく使用されます。
同様に、システム内の特定の構成情報をグローバルに制御するためにクラスが必要な場合、シングルトン モードを使用して簡単に実装できます。

PHP シングルトン モードの実装

以下は、データベース操作クラスを実装するための PHP シングルトン モードのフレームワークです。

<?php
 class Db{
 const DB_HOST=&#39;localhost&#39;;
 const DB_NAME=&#39;&#39;;
 const DB_USER=&#39;&#39;;
 const DB_PWD=&#39;&#39;;
 private $_db;
 //保存实例的私有静态变量
 private static $_instance;
 //构造函数和克隆函数都声明为私有的
 private function __construct(){
  //$this->_db=mysql_connect();
 }
 private function __clone(){
  //实现
 }
 //访问实例的公共静态方法
 public static function getInstance(){
  if(!(self::$_instance instanceof self)){
  self::$_instance=new self();
  }
  //或者
  if(self::$_instance===null){
  self::$_instance=new Db();
  }
  return self::$_instance;
 }
 public function fetchAll(){
  //实现
 }
 public function fetchRow(){
  //实现
 }
 }
 //类外部获取实例的引用
 $db=Db::getInstance();
?>

概要 :以上がこの記事の全内容ですので、皆様の学習のお役に立てれば幸いです。

#関連する推奨事項:

php 文字列変換スキル

php 文字列および配列メソッド

実行する SQL ステートメントを生成するために php に配列生成を実装します

以上がPHPシングルトンモードの概念と特徴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。