国产探花免费观看_亚洲丰满少妇自慰呻吟_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 單例模式

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 罗城| 康保县| 奎屯市| 泾川县| 丹江口市| 安西县| 武威市| 图们市| 黄陵县| 铜陵市| 青龙| 九台市| 靖宇县| 武定县| 札达县| 松原市| 沧州市| 盐城市| 天峻县| 黔西| 麦盖提县| 台北县| 承德市| 独山县| 武平县| 友谊县| 屏山县| 青岛市| 新密市| 溧阳市| 谷城县| 静乐县| 周至县| 龙里县| 永靖县| 西安市| 兴安县| 平山县| 资兴市| 共和县| 盐山县|