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

首頁 > 編程 > PHP > 正文

PHP 單例模式

2019-11-11 02:24:33
字體:
供稿:網(wǎng)友

一、什么是單例模式?

1、含義   

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

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

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

[php] view plain copy  PRivate static $_instance;   

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

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

(3). 必須提供一個(gè)訪問這個(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;      }   

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

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

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

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

<?php	/**	 * by www.phpddt.com	 */	class MySQL{		//該屬性用來保存實(shí)例		private static $conn;		//構(gòu)造函數(shù)為private,防止創(chuàng)建對(duì)象		private function __construct(){			$this->conn = mysql_connect('localhost','root','');		}		//創(chuàng)建一個(gè)用來實(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ā)表
主站蜘蛛池模板: 昆明市| 霍邱县| 无极县| 湘乡市| 南开区| 东兰县| 隆德县| 达孜县| 图木舒克市| 集贤县| 镇江市| 沛县| 无棣县| 乌鲁木齐市| 辽阳市| 慈溪市| 宣化县| 科尔| 古浪县| 钦州市| 青阳县| 巴塘县| 高州市| 沛县| 固阳县| 罗平县| 北辰区| 大安市| 大冶市| 东乌珠穆沁旗| 汨罗市| 普格县| 平舆县| 准格尔旗| 抚远县| 永和县| 济宁市| 夹江县| 漳平市| 镇远县| 恭城|