單例模式也稱單態,是23種設計模式中最簡單的一種,從他的名字就可以知道他的核心思想,單例模式就是系統中只有一個這樣的對象,對象只有一個,在Java或者C#中,單例模式一般有兩種,分別是懶漢式、餓漢式,但是在PHP中常用的就是懶漢式,由於PHP是單線程的,懶漢式也不存在雙重驗證。
懶漢式具體代碼:
測試代碼:
$single1=Singleton::getInstance(); $single1->age=22; $single2=Singleton::getInstance(); $single2->age=24; echo 變量1的age:{$single1->age} ; echo 變量2的age:{$single2->age} ;
通過以上代碼,我可以整理編寫單例模式的三個步驟:
1.創建一個類靜態變量
2.私有化構造函數與克隆函數,防止外部調用
3.提供一個外部可以調用的靜態方法,實例化第一步創建的靜態變量
很明顯,單例模式的適用場景就是系統中的對象只需要一個就可以的時候,例如,Java中Spring的Bean工廠,PHP中的數據庫連接等等,只要有這種需求就首先單例模式。
PHP面向對象設計模式