php設計模式 單例模式

2022-09-05 15:30:13 字數 505 閱讀 6557

學習php這麼久,雖然設計模式遇到不少,但是都沒有深究,最近有時間準備研究下php的設計模式,我們就從「單例模式」開始。

單例模式,顧名思義只有乙個例項。單例模式確保某乙個類只有乙個例項,它不會建立例項副本,而是利用自身的方法自行例項化。首先我們看乙個例子:

class

openstack

public

static

function getinstance()

return

self::$instance;

}}

在這裡我們可以看到,由於該openstack類的建構函式是私有的,所以這個類並不能在外部直接例項化,只能通過getinstance()這個共有的方法來操作。

在該方法的內部,我們首先要判斷$instance是否存在,不存在的話就例項化該類本身,賦給$instance。否則就直接返回$instance,這樣就能保證該應用中只存在該類的乙個例項,避免了多次new openstack()產生的資源開銷。

php設計模式 單例模式

靜態方法所訪問的屬性也必須是static的。靜態方法呼叫靜態變數使用方式是self 靜態變數名 靜態方法呼叫靜態方法使用方式是self 靜態方法名 類的例項可以訪問靜態方法,但不可以訪問靜態變數 package name subpackage name category name author ad...

PHP設計模式 單例模式

單例模式就是保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。通常我們可以讓乙個全域性變數使得乙個物件被訪問,但是不能防止你例項化多個變數,乙個最好的辦法就是讓類自身負責儲存它的唯一例項,這個類可以保證沒有其它例項可被建立,並且他可以提供乙個訪問該例項的方法。下面提供兩種單例模式的例子 例1 ...

PHP設計模式 單例模式

單例模式的必要性 1.目的 確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。2.要點 1 某乙個類只能有乙個例項 2 必須自行建立這個例項 3 必須自行向整個系統提供這個例項。3.作用 避免重複例項化,節省系統資源。例如在資料庫操作方面,會大量存在資料庫連線操作,單例類可以避免多次...