您好,登錄后才能下訂單哦!
這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)php中單例模式優(yōu)缺點是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
【概要】
保證一個類僅有一個實例,并且提供一個訪問它的全局訪問點【GOF95】
【特點】
1、一個類只有一個實例
2、它必須自行創(chuàng)建這個實例
3、必須自行向整個系統(tǒng)提供這個實例
【結(jié)構(gòu)圖】
【主要角色】
Singleton定義一個Instance操作,允許客戶訪問它的唯一實例。Instance是一個類方法。負責創(chuàng)建它的唯一的實例。
【優(yōu)缺點】
1、對唯一實例的受控訪問
2、縮小命名空間 單例模式是對全局變量的一種改進。它避免了那些存儲唯一實例的全局變量污染命名空間
3、允許對操作和表示的精華 單例類可以有子類。而且用這個擴展類的實例來配置一個應(yīng)用是很容易的。你可以用你所需要的類的實例在運行時刻配置應(yīng)用。
4、允許可變數(shù)目的實例(多例模式)
5、比類操作更靈活
【適用性】
1、當類只能有一個實例而且客戶可以從一個眾所周知的訪問點訪問它時
2、當這個唯一實例應(yīng)該是通過子類化可擴展的。并且用戶應(yīng)該無需更改代碼就能使用一個擴展的實例時。
【單例模式php實例】
復制代碼 代碼如下:
<?php
/**
* 單例模式
* -------------
* @author zhaoxuejie <zxj198468@gmail.com>
* @package design pattern
* @version v1.0 2011-12-14
*/
class Singleton {
//私有靜態(tài)成員變量,保存全局實例
private static $instance = NULL;
//私有構(gòu)造方法,保證外界無法直接實例化
private function __construct(){}
//靜態(tài)方法,返回此類唯一實例
public static function getInstance(){
if(!isset(self::$instance)){
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;
}
//測試用方法
public function info(){
return 'ok';
}
//防止克隆
public function __clone(){
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
}
$s = Singleton::getInstance();
echo $s->info();
?>
上述就是小編為大家分享的php中單例模式優(yōu)缺點是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。