細解單例模式
阿新 • • 發佈:2018-12-22
一.單例模式(典型的三私一公)
單例模式(即該類只能例項化一次)
1.例項化類時,會自動呼叫類的構造方法,因為將構造方法設定為private屬性,限制為只能在類內部例項化
private function __construct(){}
2.定義一個靜態方法,在類內部例項化物件。例項化前先判斷該類是否已被例項化了,若已被例項化,就返回該例項化物件;若沒被例項化,便例項化一個物件並將該物件儲存在類的靜態屬性中
private static res=null;
public static function create(){
if(self::$res ===null){
self::$res=new self();
}
return self::$res;
}
3.禁止克隆,物件之間進行克隆可生成不同的物件。而克隆時會自動呼叫類的__conle方法,因此將克隆方法設定為private屬性
private function __clone(){}
總結如下:
class Mysql {
private static $self = null;
public static function create(){
if (self::$self === null) {
self::$self = new self();
}
return self::$self;
}
private function __construct(){
}
private function __clone(){
}
}
二.