在php中經常會用到單例模式,單例模式就是通過乙個類創造出來的物件都是同乙個,而並不是乙個新的物件。
特別是在db操作中,db連線這種物件就必須是通過單例模式來實現的。
還有例如地圖中我們也是使用單例模式,使用單例模式使得我們每次搜尋地圖後返回都不會建立乙個新的物件,不僅增強了效能,還不會使地圖每次都重新整理,跑位。
下面舉例來實現:
<?php
class
richestman
return self:
:$person;}
}$man1
= richestman:
:createman()
;$man2
= richestman:
:createman()
;
以上就是用來實現乙個單例模式的過程,通過richestman
類創造出來的物件是同乙個物件,也就是建立$man2
時並不會重新執行new
操作,而是直接返回之前的靜態變數。
我們可以這樣來驗證:
<?php
class
richestman
return self:
:$person;}
public
$money=0
;}echo"";
$man1
= richestman:
:createman()
;$man2
= richestman:
:createman()
;var_dump
($man1);
var_dump
($man2
);
我們只是向類richestman
中新增了乙個公有屬性值為0
,然後載判斷例項化物件self::$person
是null
時修改屬性值為10000
,因為之後再新建物件時就不會走if
中的語句,所以若輸出的兩個物件完全相同就說明這兩個物件本質上是乙個。即單例模式,輸出結果為:
object(richestman)#1 (2)
object(richestman)#1 (2)
這就是乙個簡單的單例模式的實現。 設計模式 單例模式
單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...
設計模式 單例模式
class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...
設計模式 單例模式
單例模式的目的是保證類在系統中只被例項化一次,由該唯一的例項來為系統提供服務.單例模式主要用於保證服務的統一,比如獲取統一的編號服務,模仿oracle的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...