国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP 單例模式

2019-11-11 02:24:02
字體:
來源:轉載
供稿:網友

一、什么是單例模式?

1、含義   

   作為對象的創建模式,單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統全局地提供這個實例。它不會創建實例副本,而是會向單例類內部存儲的實例返回一個引用。

2、單例模式的三個要點:

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

[php] view plain copy  PRivate static $_instance;   

(2). 構造函數和克隆函數必須聲明為私有的,防止外部程序new類從而失去單例模式的意義:

[php] view plain copy  private function __construct()   {       $this->_db = pg_connect('xxxx');  }   private function __clone()  {  }//覆蓋__clone()方法,禁止克隆     

(3). 必須提供一個訪問這個實例的公共的靜態方法(通常為getInstance方法),從而返回唯一實例的一個引用 

[php] view plain copy  public static function getInstance()    {        if(! (self::$_instance instanceof self) )       {            self::$_instance = new self();        }      return self::$_instance;      }   

單例模式按字面來看就是某一個類只有一個實例,這樣做的好處還是很大的,比如說數據庫的連接,我們只需要實例化一次,不需要每次都去new了,這樣極大的降低了資源的耗費。

單例類至少擁有以下三種公共元素:

    必須擁有一個構造函數,并且必須被標記為private。    擁有一個保存類的實例的靜態成員變量。    擁有一個訪問這個實例的公共的靜態方法

具體使用方面,我在下面php實例中注釋的很清楚:

<?php	/**	 * by www.phpddt.com	 */	class MySQL{		//該屬性用來保存實例		private static $conn;		//構造函數為private,防止創建對象		private function __construct(){			$this->conn = mysql_connect('localhost','root','');		}		//創建一個用來實例化對象的方法		public static function getInstance(){			if(!(self::$conn instanceof self)){				self::$conn = new self;			}			return self::$conn;		}		//防止對象被復制		public function __clone(){			trigger_error('Clone is not allowed !');		}			}	//只能這樣取得實例,不能new 和 clone	$mysql = Mysql::getInstance();?>
上一篇:PHP redis 擴展安裝

下一篇:PHP 單例模式

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰州市| 兴化市| 法库县| 吉水县| 柘城县| 宾川县| 华蓥市| 蚌埠市| 沙湾县| 周口市| 成都市| 乐都县| 吉安市| 皋兰县| 桓仁| 铁岭县| 定陶县| 肥东县| 长葛市| 噶尔县| 遂宁市| 柳江县| 阳江市| 福州市| 宜黄县| 望谟县| 武宁县| 泸定县| 耿马| 方城县| 日土县| 肃北| 科技| 泰宁县| 湖北省| 垦利县| 宝坻区| 喀什市| 福清市| 盐亭县| 合作市|