php單例模式是什麼意思

2020-07-16 10:06:33

php單例模式是什麼意思

一個類有且僅有一個範例,並且自行範例化後提供給整個程式使用,或者可以理解為在整個程式執行期間,保證這個類有且僅一個範例,並對外提供一個能夠存取它的全域性存取點。

php單例模式範例

class Singleton {
    private static $_instance;//儲存範例化出來的單例
//建構函式私有化,確保單例類不能通過其它物件 new 出來
    private final function __construct() {}
//定義私有的__clone()方法,這是確保單例類不能被複製或克隆,否則又不是單例了。
    private function __clone() {}
    public static function getInstance() {
//檢測類是否被範例化,如果沒有範例化,就 new 一下,已經範例化就直接返回。
        if ( ! (self::$_instance instanceof self) ) {
            self::$_instance = new test();
        }
        return self::$_instance;
    }
}

//拿到單例範例,多次呼叫都是同一個範例
Singleton::getInstance();

優點

1、提供了對唯一範例達到受控存取。

2、由於在系統記憶體中只存在一個物件,因此可以節約系統資源,對於一些需要頻繁建立和銷毀的物件單例模式無疑可以提高系統的效能。

缺點

1、單例模式破壞了常見的類模式以及沒有抽象層,因擴充套件時有很大的困難。

2、單例模式為了能夠保持執行期間唯一並能夠被全域性存取,汙染了全域性變數。

以上就是php單例模式是什麼意思的詳細內容,更多請關注TW511.COM其它相關文章!