首頁  >  文章  >  後端開發  >  php單例模式如何實現

php單例模式如何實現

(*-*)浩
(*-*)浩原創
2019-10-09 13:27:063036瀏覽

單例模式,是一種常用的軟體設計模式。 在它的核心結構中只包含一個被稱為單例的特殊類別。透過單例模式可以保證系統中一個類別只有一個實例。即一個類別只有一個物件實例。

php單例模式如何實現

提示: 資料庫連線池的設計一般也是採用單例模式,因為資料庫連線是一種資料庫資源。資料庫軟體系統中使用資料庫連接池,主要是節省開啟或關閉資料庫連線所造成的效率損耗,而這種效率上的損耗還是非常昂貴的,因此用單例模式來維護,就可以大幅降低這種損耗。 (推薦學習:PHP視訊教學

PHP實作單例模式有四個要點:

需要一個保存類別的唯一實例的靜態成員變數;

建構子和複製函式必須宣告為私有的防止外部程式new類別而失去單例模式的意義;

必須提供一個存取這個實例的公共的靜態方法;

在定義類別的時候用final關鍵字禁止繼承,防止重寫父類別方法。

參考程式碼:

final class Singleton {

    //静态变量要设置为私有,防止被修改
    private static  $instance;

    //构造函数声明为私有,防止外部程序new类
    private function __construct() {

    }

    //克隆函数声明为私有,防止克隆对象
    private function __clone() {

    }

    //提供一个创建唯一实例的接口
    public static function getInstance() {

        if(!(self::$instance instanceof self)) {
            self::$instance = new self();
        }
        return self::$instance;
    }
}

//只能根据getInstance静态方法创建Singleton实例
$ins = Singleton::getInstance()

以上是php單例模式如何實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn