首頁  >  文章  >  後端開發  >  php 物件實例化單例方法詳解

php 物件實例化單例方法詳解

怪我咯
怪我咯原創
2017-07-12 11:30:131454瀏覽

單例模式(職責模式):

簡單的說,一個物件(在學習設計模式之前,需要比較了解物件導向思想)只負責一個特定的任務;

單例類別:

1、建構子需要標記為private(存取控制:防止外部程式碼使用new運算元建立物件),單例類別不能在其他類別中實例化,只能被其自身實例化;

#2、擁有一個保存類別的實例的靜態成員變數

# 3.擁有一個存取這個實例的公共的靜態方法(常用getInstance()方法進行實例化單例類,透過instanceof操作符可以檢測到類別是否已經被實例化)

另外,需要創建clone ()方法防止物件被複製(複製)

為什麼要使用PHP單例模式?

1、php的應用主要在於資料庫應用, 所以一個應用程式中會存在大量的資料庫操作, 使用單例模式, 則可以避免大量的new 操作消耗的資源。

2、如果系統中需要有一個類別來全域控制某些設定資訊, 那麼使用單例模式可以很方便的實作. 這個可以參考ZF的FrontController部分。

3、在一次頁面請求中, 便於進行調試, 因為所有的代碼(例如數據庫操作類db)都集中在一個類中, 我們可以在類中設置鉤子, 輸出日誌,從而避免到處var_dump, echo。

本文主要介紹了PHP實例化物件單例的方法,具有很好的參考價值,下面跟著小編一起來看吧

#PHP實例化物件單例的方法:

三私一公:2個私有方法,1個私有屬性,1個公用方法

  private function construct(){} //不可以继承构造方法
  private function clone(){}//不可以继承克隆方法
  privare static $_instance;

一公 

public static function getinstance(){
    if(!isset(static:$_instance)){
      static::$_instance=new static();
      }
      return static::$_instance;
  }

以上是php 物件實例化單例方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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