設計模式 | 單例模式

一、含義

單例模式確保某一個類只有一個實例,並且自行實例化並向整個系統全局地提供這個實例,它不會建立實例副本,而是會向單例類內部存儲的實例返回一個引用,php

二、單例模式的三個要點:

  • 須要一個保存類的惟一實例的靜態成員變量
  • 構造函數和克隆函數必須聲明爲私有的,防止外部程序new類從而失去單例模式的意義
  • 必須提供一個訪問這個實例的公共的靜態方法

三、優勢

PHP語言是一種解釋型的腳本語言,這種運行機制使得每一個PHP頁面被解釋執行後,全部的相關資源都會被回收。也就是說,PHP在語言級別上沒有辦法讓某個對象常駐內存
單例模式,針對單次請求時出現多個應用場景並須要共享同一對象資源時是很是有意義的微信

四、例子

<?php

class DB{

    private static $_obj = null;

    private function __construct() {}

    private function __clone(){
        // TODO: Implement __clone() method.
    }

    public static function getInstance(){

        if (!(self::$_obj instanceof self)){
            self::$_obj = new self();
        }
        return self::$_obj;
    }
    public function test(){
        echo '這是一個測試';
        die();
    }
}

$objDb = DB::getInstance();
$objDb->test();

更多精彩內容,關注下面的微信公衆號~函數

掃碼_搜索聯合傳播樣式-標準色版.png

相關文章
相關標籤/搜索