php實現單例模式

2021-09-30 09:17:46 字數 1050 閱讀 6237

【概要】

建立型模式

保證乙個類僅有乙個例項,並且提供乙個訪問它的全域性訪問點【gof95】

【特點】

1、乙個類只有乙個例項

2、它必須自行建立這個例項

3、必須自行向整個系統提供這個例項

【結構圖】

【主要角色】

singleton 定義乙個instance操作,允許客戶訪問它的唯一例項。instance是乙個類方法。負責建立它的唯一的例項。

【優缺點】

1、對唯一例項的受控訪問

2、縮小命名空間 單例模式是對全域性變數的一種改進。它避免了那些儲存唯一例項的全域性變數汙染命名空間

3、允許對操作和表示的精華 單例類可以有子類。而且用這個擴充套件類的例項來配置乙個應用是很容易的。你可以用你所需要的類的例項在執行時刻配置應用。

4、允許可變數目的例項(多例模式)

5、比類操作更靈活

【適用性】

1、當類只能有乙個例項而且客戶可以從乙個眾所周知的訪問點訪問它時

2、當這個唯一例項應該是通過子類化可擴充套件的。並且使用者應該無需更改**就能使用乙個擴充套件的例項時。

【單例模式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實現單例模式

一.單例模式的特點 應用場景 在乙個應用中會存在大量連線資料庫的操作,如果不用單例模式,那每次都要new操作,但是每次new都會消耗大量的記憶體資源和系統資源,而且每次開啟和關閉資料庫連線都是對資料庫的一種極大考驗和浪費。二 要點 1.construct和 clone這兩個方法必須設為私有,防止外部...

php 單例模式 多頁面,PHP單例模式的實現

單例模式的意義在於,很多時候不需要建立重複的例項。用php實現單例模式的原理是,使用乙個靜態變數儲存例項,當遇到重複的 new 操作時,直接返回靜態變數中儲存的例項。典型的應用有資料庫類,請看 class db 儲存例項的靜態變數 public static instance 構造方法私有化 不能直...

php單例模式的實現

設計模式之單例模式 instance必須宣告為靜態的私有變數 建構函式和析構函式必須宣告為私有,防止外部程式new 類從而失去單例模式的意義 getinstance 方法必須設定為公有的,必須呼叫此方法 以返回例項的乙個引用 操作符只能訪問靜態變數和靜態函式 new物件都會消耗記憶體 使用場景 最常...