【概要】
保證乙個類僅有乙個例項,並且提供乙個訪問它的全域性訪問點【gof95】
【特點】
1、乙個類只有乙個例項
2、它必須自行程式設計客棧建立這個例項
3、必須自www.cppcns.com行向整個系統提供這個例項
【結構圖】
【主要角色】
singleton定義乙個instance操作,允許客戶訪問它的唯一例項。instance是乙個類方法。負責建立它的唯一的例項。
【優缺點】
1、對唯一例項的受控訪問
2、縮小命名空間 單例模式是對全域性變數的一種改進。它避免了那些儲存唯一例項的全域性變數汙染命名空間
3cixlkjd、允許對操作和表示的精華 單例類可以有子類。而且用這個擴充套件類的例項來配置乙個應用是很容易的。你可以用你所需要的類的例項在執行時刻配置應用。
4、允許可變數目的例項(多例模式)
5、比類操作更靈活
【適用性】
1、當類只能有乙個例項而且客戶可以從乙個眾所周知的訪問點訪問它時
2、當這個唯一例項應該是通過子類化可擴充套件的。並且使用者應cixlkjd該無需更改**就能使用乙個擴充套件的例項時。
【單例模式php例項】
複製** **如下:
<?php
/*** 單例模式
* -------------
* @author zhaoxuejie
* @package design pattern
* @version v1.0 2011-12-14
*/class singleton
//靜態方法,返回此類唯一例項
public static function getinstance()
return self::$instance;
}程式設計客棧
//測試用方法
public function info()
//防止轉殖
public function __clone()
}$s = singleton::getinstance();
echo $s->info();
?>
本文標題: php實現設計模式中的單例模式詳解
本文位址:
PHP設計模式之單例模式實現
class a static public function getinstance return self obj public function test newinstance a getinstance echo newinstance test newinstance1 a getinst...
php設計模式 單例模式
靜態方法所訪問的屬性也必須是static的。靜態方法呼叫靜態變數使用方式是self 靜態變數名 靜態方法呼叫靜態方法使用方式是self 靜態方法名 類的例項可以訪問靜態方法,但不可以訪問靜態變數 package name subpackage name category name author ad...
PHP設計模式 單例模式
單例模式就是保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。通常我們可以讓乙個全域性變數使得乙個物件被訪問,但是不能防止你例項化多個變數,乙個最好的辦法就是讓類自身負責儲存它的唯一例項,這個類可以保證沒有其它例項可被建立,並且他可以提供乙個訪問該例項的方法。下面提供兩種單例模式的例子 例1 ...