PHP設計模式——單例模式
宣告:本系列部落格參考資料《大話設計模式》,作者程傑。
單例模式也稱單態,是23種設計模式中最簡單的一種,從他的名字就可以知道他的核心思想,單例模式就是系統中只有一個這樣的物件,物件只有一個,在Java或者C#中,單例模式一般有兩種,分別是懶漢式、餓漢式,但是在PHP中常用的就是懶漢式,由於PHP是單執行緒的,懶漢式也不存在雙重驗證。
懶漢式具體程式碼:
<?php /** * Created by PhpStorm. * User: LYL * Date: 2015/4/21 * Time: 21:25 */ /**懶漢式 * Class Singleton */ class Singleton { //建立靜態物件變數 private static $instance=null; public $age; //建構函式私有化,防止外部呼叫 private function __construct() { } //克隆函式私有化,防止外部克隆物件 private function __clone() { } //例項化物件變數方法,供外部呼叫 public static function getInstance() { if(empty(self::$instance)) { self::$instance=new Singleton(); } return self::$instance; } }
測試程式碼:
$single1=Singleton::getInstance(); $single1->age=22; $single2=Singleton::getInstance(); $single2->age=24; echo "變數1的age:{$single1->age}<br/>"; echo "變數2的age:{$single2->age}<br/>";
我們可以看到,變數$single1,$single2的age都是24,說明變數$single1,$single2是一個變數,類Singleton是單例的。
通過以上程式碼,我可以整理編寫單例模式的三個步驟:
1.建立一個類靜態變數
2.私有化建構函式與克隆函式,防止外部呼叫
3.提供一個外部可以呼叫的靜態方法,例項化第一步建立的靜態變數
很明顯,單例模式的適用場景就是系統中的物件只需要一個就可以的時候,例如,Java中Spring的Bean工廠,PHP中的資料庫連線等等,只要有這種需求就首先單例模式。
歡迎關注我的視訊課程,地址如下,謝謝。
相關文章
- PHP 設計模式之——單例模式PHP設計模式單例
- PHP 設計模式之單例模式PHP設計模式單例
- PHP設計模式之單例模式PHP設計模式單例
- PHP設計模式(四)單例模式(Singleton)PHP設計模式單例
- 【php實現設計模式】之單例模式PHP設計模式單例
- PHP設計模式(一)—單例模式(Singleton Pattern)PHP設計模式單例
- 設計模式(單例模式)設計模式單例
- [設計模式] 單例模式設計模式單例
- 設計模式-單例模式設計模式單例
- 設計模式 —— 單例模式設計模式單例
- 設計模式 單例模式設計模式單例
- 設計模式——單例模式設計模式單例
- 設計模式-單例模式、多例模式設計模式單例
- 設計模式之單例設計模式設計模式單例
- 設計模式(一)_單例模式設計模式單例
- 常用設計模式-單例模式設計模式單例
- 設計模式之單例模式設計模式單例
- Java設計模式【單例模式】Java設計模式單例
- Java設計模式 | 單例模式Java設計模式單例
- 001設計模式:單例模式設計模式單例
- # Python設計模式 單例模式Python設計模式單例
- 設計模式一(單例模式)設計模式單例
- 設計模式之☞單例模式設計模式單例
- Java設計模式——單例模式Java設計模式單例
- Java設計模式–單例模式Java設計模式單例
- js設計模式--單例模式JS設計模式單例
- Java設計模式-單例模式Java設計模式單例
- 設計模式(二)——單例模式設計模式單例
- 設計模式之---單例模式設計模式單例
- Java設計模式--單例模式Java設計模式單例
- Python設計模式——單例模式Python設計模式單例
- 設計模式—singleton(單例模式)設計模式單例
- python設計模式-單例模式Python設計模式單例
- PHP設計模式-- 單列模式PHP設計模式
- 設計模式總結 —— 單例設計模式設計模式單例
- JavaScript設計模式初探--單例設計模式JavaScript設計模式單例
- 單例設計模式單例設計模式
- php單例模式PHP單例模式
- Javascript設計模式之單例模式JavaScript設計模式單例