PHP開發模式之-單例模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class   Db{
private  function  __construct(){}
private  static  $instance ;
public  static  function  getInstance(){
if (!self:: $instance  instanceof  Db){
self:: $instance  new  self();
}
return  self:: $instance ;
}
private  function  __clone(){}
}
$db1 = Db::getInstance();
$db2 = Db::getInstance();
$db3 = Db::getInstance();
var_dump( $db1 );
var_dump( $db2 );
var_dump( $db3 );

單例模式又稱爲職責模式,它用來在程序中建立一個單一功能的訪問點,通俗地說就是實例化出來的對象是惟一的。
全部的單例模式至少擁有如下三種公共元素:
1. 它們必須擁有一個構造函數,而且必須被標記爲private
2. 它們擁有一個保存類的實例的靜態成員變量
3. 它們擁有一個訪問這個實例的公共的靜態方法
單例類不能再其它類中直接實例化,只能被其自身實例化。它不會建立實例副本,而是會向單例類內部存儲的實例返回一個引用。php

相關文章
相關標籤/搜索