久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

PHP 單件模式 - PHP程序總結(jié)&討論 - 西部PHP PHP社區(qū) - Powered...

 tianhao 2010-04-16
PHP 單件模式
對一些類來說,,只有一個實例是很重要的。比如一個數(shù)據(jù)庫連接類實例,。我們怎么樣才能保證一個類只有一個實例并且這個實例易于被訪問呢,?一個全局變量 使得一個對象可以被訪問,但它不能防止你實例化多個對象,,而且全局變量會帶來意想不到的麻煩,。一個更好的辦法是,讓類自身負責(zé)保存它的唯一實例,。這個類可 以保證沒有其他實例可以被創(chuàng)建(通過截取創(chuàng)建新對象的請求),,并且它可以提供一個訪問該實例的方法。這就是Singleton模式:保證一個類僅有一個實例,,并提供一個訪問它的全局訪問點,。

請看下面一段代碼,一個數(shù)據(jù)庫連接類:

view plaincopy to clipboardprint?
<?php   
class DbConn {   
// 私有靜態(tài)變量,保存DbConn類唯一實例   
private static $instance;   
  
// 私有的構(gòu)造函數(shù),防止用戶直接實例化DbConn類   
private function __construct() {   
// 這里初始化數(shù)據(jù)庫連接   
}   
// 公有的靜態(tài)方法,獲取DbConn類的唯一實例   
public static function getInstance() {   
if (!isset(self::$instance)) {   
self::$instance = new DbConn();   
}   
return self::$instance;   
}   
// 私有的析構(gòu)函數(shù)   
private function __destruct() {   
// 這里關(guān)閉數(shù)據(jù)庫連接   
}   
// 阻止用戶克隆DbConn類實例   
public function __clone() {   
trigger_error('不允許Clone.', E_USER_ERROR);   
}   
?>  
<?php
class DbConn {
// 私有靜態(tài)變量,保存DbConn類唯一實例
private static $instance;

// 私有的構(gòu)造函數(shù),防止用戶直接實例化DbConn類
private function __construct() {
// 這里初始化數(shù)據(jù)庫連接
}
// 公有的靜態(tài)方法,獲取DbConn類的唯一實例
public static function getInstance() {
if (!isset(self::$instance)) {
self::$instance = new DbConn();
}
return self::$instance;
}
// 私有的析構(gòu)函數(shù)
private function __destruct() {
// 這里關(guān)閉數(shù)據(jù)庫連接
}
// 阻止用戶克隆DbConn類實例
public function __clone() {
trigger_error('不允許Clone.', E_USER_ERROR);
}
?>

分析一下這段代碼,發(fā)現(xiàn)4個特征:
1.一個私有的靜態(tài)屬性
2.私有的構(gòu)造,、析構(gòu)函數(shù)
3.一個公有的靜態(tài)方法獲取類的唯一實例
4.防止用戶克隆(__clone())類實例

這就是Singleton模式的特征,,一個非常高效實用的模式。

下面一段代碼是測試例子,。

view plaincopy to clipboardprint?
<?php   
// 報錯   
$test = new DbConn();   
// OK   
$test = DbConn::getInstance();   
// 報錯   
$test_clone = clone($test);   
?>

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多