標籤:style blog color 使用 io cti div 代碼
php設計模式筆記:單例模式
意圖:
保證一個類僅有一個執行個體,並且提供一個全域訪問點
單例模式有三個特點:
1、一個類只有一個執行個體
2、它必須自行建立這個執行個體
3、必須自行向整個系統提供這個執行個體
主要實現:
Singleton定義了一個instance操作,允許外部存取它的唯一執行個體,instance是一個類方法,負責建立它的唯一執行個體。
singleton適用情境:
1、當類只能有一個執行個體而且外部可以從一個公用的訪問點訪問它。
2、當這個唯一執行個體應該是通過子類化可擴充的。並且使用者應該無需更改代碼就能使用一個擴充的執行個體時。
Singleton執行個體:
1 <?php 2 class singleton{ 3 //靜態成品變數 儲存全域執行個體 4 private static $_instance = NULL; 5 //私人化構造方法,防止外部存取 6 private function __construct(){} 7 //防止使用者複製 8 private function __clone(){} 9 //靜態Factory 方法,返回此類的唯一執行個體10 public static function getInstance(){11 if(!(self::$_instance instanceof self)){12 self::$_instance = new self;13 }14 return self::$_instance;15 }16 //測試17 public function test(){18 echo "singleton test!";19 }20 }21 22 class Singletontest{23 public static function main(){24 $instance = singleton::getInstance();25 $instance->test();26 }27 } 28 29 Singletontest::main();30 ?>