ホームページ >バックエンド開発 >PHPチュートリアル >PHP設計パターン シングルトンパターンの原理と実装方法の分析 PHPスキル

PHP設計パターン シングルトンパターンの原理と実装方法の分析 PHPスキル

jacklove
jackloveオリジナル
2018-06-26 17:19:092339ブラウズ

この記事では、主に PHP デザイン パターンにおけるシングルトン パターンの原理と実装方法を紹介します。シングルトン パターンの概念、機能、構成を簡単に紹介し、シングルトン パターンの定義と使用に関する関連する操作テクニックを分析します。サンプルの形式での PHP 、必要な友人は参照してください。

この記事のサンプルでは、​​PHP デザイン パターンのシングルトン パターンの原理と実装方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:

1. シングルトン モードとは

オブジェクト作成モードとして、シングルトン モードは次のことを保証します。特定のクラス インスタンスのクラスは 1 つだけあり、このグローバル インスタンスへの外部アクセスを提供します。インスタンスのコピーは作成されませんが、シングルトン クラス内に格納されているインスタンスへの参照を返します。

2. PHP シングルトン モードの 3 つの要素

1. クラスの唯一のインスタンスを保存するには、静的メンバー変数が必要です。

2. 外部プログラムがインスタンスのコピーを作成またはコピーできないように、コンストラクターとクローン関数をプライベートとして宣言する必要があります。

3. このインスタンスにアクセスするには、パブリック静的メソッドを提供する必要があります。これにより、一意のインスタンスへの参照が返されます。

3. シングルトン モードを使用する理由

シングルトン モードを使用するメリットは大きく、データベース操作を例に挙げます。シングルトンモードを採用しない場合、プログラム内で多数のデータベース操作が発生する場合、毎回新しい操作を実行する必要があり、データベース接続が開かれるたびに大量のメモリリソースとシステムリソースを消費します。閉じていると、データベースに大きな影響があり、無駄になります。シングルトン モードを使用すると、インスタンス化する必要があるのは 1 回だけであり、毎回新しい操作を実行する必要がないため、リソースの消費が大幅に削減されます。

4. シングルトン モードの例

ここではデータベース操作を例として取り上げます

<?php
/**
*  单例模式
**/
class Db
{
  //保存全局实例
  private static $instance;
  //数据库连接句柄
  private $db;
  //数据库连接参数
  const HOSTNAME = "127.0.0.1";
  const USERNAME = "root";
  const PASSWORD = "root";
  const DBNAME = "testdb";
  //私有化构造函数,防止外界实例化对象
  private function __construct()
  {
    $this->db = mysqli_connect(self::HOSTNAME,self::USERNAME,
      self::PASSWORD,self::DBNAME);
  }
  //私有化克隆函数,防止外界克隆对象
  private function __clone()
  {
  }
  //单例访问统一入口
  public static function getInstance()
  {
    if(!(self::$instance instanceof self))
    {
      self::$instance = new self();
    }
    return self::$instance;
  }
  //数据库查询操作
  public function getinfo()
  {
    $sql = "select * from testtb";
    $res = mysqli_query($this->db,$sql);
    while($row = mysqli_fetch_array($res)) {
      echo $row[&#39;testcol&#39;] . &#39;<br />&#39;;
    }
    mysqli_free_result($res);
  }
}
$mysqli = Db::getInstance();
$mysqli->getinfo();
?>

興味があるかもしれない記事:

PHP デザイン パターン プロトタイプ デザイン パターンの原則と使用分析 PHP スキル

laravel SMSで認証コードを送信する実装方法 php example

##PHP acceptMailはメール受信機能を実装します php example

#

以上がPHP設計パターン シングルトンパターンの原理と実装方法の分析 PHPスキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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