php之單例模式

2021-07-10 14:19:00 字數 808 閱讀 2392

本週我們後台討論小組需要討論設計模式之單例模式,單例模式是最簡單的設計模式之一,於是我花了點時間研究了一下。廢話不多說,進入正題。

1.定義:

單例模式最初的定義出現於《設計模式》(艾迪生維斯理, 1994):「保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。」

2.問題:

在php程式設計中,和資料庫打交道,如果不使用單例模式,那麼每一次鏈結資料庫時都需要new乙個物件,頻繁的這樣做會極大的消耗資源,這時候我們需要單例模式來救場。

3.實現

老規矩,先上**。

class

man public

static

function

getinstance

() return

self::$instance;

}private

function

__clone

() {}

}

解釋一下,首先我們把構造方法私有化之後,就無法從類外部例項化man類了。那麼怎麼去例項化這個類呢,只能從類的內部去入手了,先申請乙個靜態變數用來儲存man物件,然後建立靜態方法getinstance(),在這個方法中可以例項化本類物件,並將其儲存在$instance變數中並返回,如果已經存在該物件,則直接返回$instance。那麼私有的__clone()方法時幹什麼用的呢,它是確保單例類無法被轉殖或者複製。

由於php不像c#之類的語言,它本身不支援多執行緒,所以,它的單例模式就比較固定,沒有懶漢式,餓漢式之類的變化。

PHP之單例模式

之前記得有寫過php的幾種這模式。這幾天看群裡在問單列模式,覺得還是有必要再深入寫清楚下。其實單例模式很好理解滴哦 單例模式顧名思義,就是只有乙個例項,作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例模式的三個要點 1.某個類只能有乙個例項。2.必須...

PHP之單例模式

單例模式 也叫單態模式 好像各個地方都是叫單例!是一種常用的軟體設計模式。這個模式規定單例物件的類必須保證這個類只能有乙個例項的存在,並提供乙個訪問它的全域性訪問點 就算new,也只能讓你new乙個物件,畢竟國內是一夫一妻制 應用場景 由於這個東西不是什麼新奇的玩意,我就結合高手的和我自己的理解例項...

PHP設計模式之單例模式

1 單例模式概念 單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。2 uml靜態模型 3 單...