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

首頁(yè) > 編程 > PHP > 正文

PHP 單例模式

2019-11-11 02:31:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一、什么是單例模式?

1、含義   

   作為對(duì)象的創(chuàng)建模式,單例模式確保某一個(gè)類(lèi)只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)全局地提供這個(gè)實(shí)例。它不會(huì)創(chuàng)建實(shí)例副本,而是會(huì)向單例類(lèi)內(nèi)部存儲(chǔ)的實(shí)例返回一個(gè)引用。

2、單例模式的三個(gè)要點(diǎn):

(1). 需要一個(gè)保存類(lèi)的唯一實(shí)例的靜態(tài)成員變量:

[php] view plain copy  PRivate static $_instance;   

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

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

(3). 必須提供一個(gè)訪問(wèn)這個(gè)實(shí)例的公共的靜態(tài)方法(通常為getInstance方法),從而返回唯一實(shí)例的一個(gè)引用 

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

單例模式按字面來(lái)看就是某一個(gè)類(lèi)只有一個(gè)實(shí)例,這樣做的好處還是很大的,比如說(shuō)數(shù)據(jù)庫(kù)的連接,我們只需要實(shí)例化一次,不需要每次都去new了,這樣極大的降低了資源的耗費(fèi)。

單例類(lèi)至少擁有以下三種公共元素:

    必須擁有一個(gè)構(gòu)造函數(shù),并且必須被標(biāo)記為private。    擁有一個(gè)保存類(lèi)的實(shí)例的靜態(tài)成員變量。    擁有一個(gè)訪問(wèn)這個(gè)實(shí)例的公共的靜態(tài)方法

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

<?php	/**	 * by www.phpddt.com	 */	class MySQL{		//該屬性用來(lái)保存實(shí)例		private static $conn;		//構(gòu)造函數(shù)為private,防止創(chuàng)建對(duì)象		private function __construct(){			$this->conn = mysql_connect('localhost','root','');		}		//創(chuàng)建一個(gè)用來(lái)實(shí)例化對(duì)象的方法		public static function getInstance(){			if(!(self::$conn instanceof self)){				self::$conn = new self;			}			return self::$conn;		}		//防止對(duì)象被復(fù)制		public function __clone(){			trigger_error('Clone is not allowed !');		}			}	//只能這樣取得實(shí)例,不能new 和 clone	$mysql = Mysql::getInstance();?>
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 贵港市| 平顶山市| 乐安县| 津南区| 上高县| 恭城| 濮阳县| 股票| 襄城县| 博野县| 宣化县| 延长县| 苏州市| 施秉县| 宜章县| 济南市| 陇西县| 海口市| 马鞍山市| 徐水县| 古田县| 昌吉市| 凉城县| 磴口县| 嵩明县| 刚察县| 特克斯县| 宝坻区| 上饶县| 礼泉县| 孝感市| 旬邑县| 永德县| 洮南市| 罗江县| 朝阳市| 镇远县| 黑龙江省| 电白县| 来宾市| 五寨县|