主頁 > 知識庫 > PHP設(shè)計模式之單例模式原理與實現(xiàn)方法分析

PHP設(shè)計模式之單例模式原理與實現(xiàn)方法分析

熱門標(biāo)簽:銀行業(yè)務(wù) 服務(wù)器配置 團(tuán)購網(wǎng)站 阿里云 Linux服務(wù)器 Mysql連接數(shù)設(shè)置 科大訊飛語音識別系統(tǒng) 電子圍欄

本文實例講述了PHP設(shè)計模式之單例模式原理與實現(xiàn)方法。分享給大家供大家參考,具體如下:

一、什么是單例模式

作為對象的創(chuàng)建模式,單例模式確保某一個類只有一個實例,并且對外提供這個全局實例的訪問入口。它不會創(chuàng)建實例副本,而是會向單例類內(nèi)部存儲的實例返回一個引用。

二、PHP單例模式三要素

1. 需要一個保存類的唯一實例的靜態(tài)成員變量。

2. 構(gòu)造函數(shù)和克隆函數(shù)必須聲明為私有的,防止外部程序創(chuàng)建或復(fù)制實例副本。

3. 必須提供一個訪問這個實例的公共靜態(tài)方法,從而返回唯一實例的一個引用。

三、為什么使用單例模式

使用單例模式的好處很大,以數(shù)據(jù)庫操作為例。若不采用單例模式,當(dāng)程序中出現(xiàn)大量數(shù)據(jù)庫操作時,每次都要執(zhí)行new操作,每次都會消耗大量的內(nèi)存資源和系統(tǒng)資源,而且每次打開和關(guān)閉數(shù)據(jù)庫連接都是對數(shù)據(jù)庫的一種極大考驗和浪費。使用了單例模式,只需要實例化一次,不需要每次都執(zhí)行new操作,極大降低了資源的耗費。

四、單例模式示例

這里以數(shù)據(jù)庫操作為例

?php
/**
*  單例模式
**/
class Db
{
  //保存全局實例
  private static $instance;
  //數(shù)據(jù)庫連接句柄
  private $db;
  //數(shù)據(jù)庫連接參數(shù)
  const HOSTNAME = "127.0.0.1";
  const USERNAME = "root";
  const PASSWORD = "root";
  const DBNAME = "testdb";
  //私有化構(gòu)造函數(shù),防止外界實例化對象
  private function __construct()
  {
    $this->db = mysqli_connect(self::HOSTNAME,self::USERNAME,
      self::PASSWORD,self::DBNAME);
  }
  //私有化克隆函數(shù),防止外界克隆對象
  private function __clone()
  {
  }
  //單例訪問統(tǒng)一入口
  public static function getInstance()
  {
    if(!(self::$instance instanceof self))
    {
      self::$instance = new self();
    }
    return self::$instance;
  }
  //數(shù)據(jù)庫查詢操作
  public function getinfo()
  {
    $sql = "select * from testtb";
    $res = mysqli_query($this->db,$sql);
    while($row = mysqli_fetch_array($res)) {
      echo $row['testcol'] . 'br />';
    }
    mysqli_free_result($res);
  }
}
$mysqli = Db::getInstance();
$mysqli->getinfo();
?>

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家PHP程序設(shè)計有所幫助。

您可能感興趣的文章:
  • php單態(tài)設(shè)計模式(單例模式)實例
  • php設(shè)計模式 Singleton(單例模式)
  • php設(shè)計模式之單例模式使用示例
  • PHP設(shè)計模式之工廠模式與單例模式
  • PHP中常用的三種設(shè)計模式詳解【單例模式、工廠模式、觀察者模式】
  • PHP設(shè)計模式之觀察者模式入門與應(yīng)用案例詳解
  • PHP設(shè)計模式之中介者模式(Mediator Pattern)入門與應(yīng)用案例詳解
  • PHP設(shè)計模式之迭代器(Iterator)模式入門與應(yīng)用詳解
  • PHP設(shè)計模式之解釋器(Interpreter)模式入門與應(yīng)用詳解
  • PHP經(jīng)典面試題之設(shè)計模式(經(jīng)常遇到)
  • php設(shè)計模式小結(jié)
  • PHP設(shè)計模式之單例模式入門與應(yīng)用詳解

標(biāo)簽:衢州 江蘇 蚌埠 棗莊 大理 萍鄉(xiāng) 衡水 廣元

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP設(shè)計模式之單例模式原理與實現(xiàn)方法分析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266