設計模式學習筆記(十四 單件模式)

2021-09-02 17:17:13 字數 882 閱讀 6324

保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。這就是單件模式的定義。

在某些情況下,我們可能需要某個類只能建立乙個物件,即不讓使用者用該類例項化出多於兩個的例項。

例如,在乙個公文管理系統中,公文類的例項「公文檔案」,需要將公章類的例項作為自己的乙個成員,以表明自己是乙個有效的公文檔案,那麼系統的設計者就需要保證公章類只有乙個例項,不能允許使用者使用公章類的構造方法再建立出第2

個例項。

單件模式是關於怎樣設計乙個類,並使該類只有乙個例項的成熟模式,該模式的關鍵是將類的構造方法設定為private許可權,並提供乙個返回它的唯一例項的類方法(

static

)。單件模式的結構非常簡單,只有一種角色:

(1)單件類(singleton):單件類只可以建立出乙個例項。

單件模式結構類圖如下所示:

單件類的設計有如下特點:

(1)單件類中包含有自身宣告的類變數,這個類變數就是單件類唯一的例項。

(2)單件類的構造方法訪問許可權是private。為了確保單件類中自身宣告的類變數是單件類唯一的例項,單件類必須將構造方法的訪問許可權設定為

private

。這樣一來其他類都無法使用單件類建立的物件。

(3)單件類負責建立自己唯一的例項,並提供訪問該例項的類方法。由於單件類的構造方法被設定為private,所以單件類必須自己負責建立自身宣告的例項。為了讓使用者使用單件類這個唯一例項,單件類必須提供乙個類方法,以便其他使用者使用單件類的類名就可以呼叫這個類方法訪問使用單件類這個唯一例項。

(1)單件類的唯一例項由單件類本身控制,所以可以很好地控制使用者何時訪問它。

(1)當系統需要某個類只能有乙個例項

設計模式學習筆記之 單件模式

單件模式的關鍵是確保只有乙個例項。1 經典單件模式 又稱懶漢模式 public class singleton public static singleton getinstance return uniquesingleton 特點 1 構造方法是私有的,僅在singleton類內部才可以被呼叫 ...

學習筆記 設計模式 4 單件模式

在乙個大型系統中,不可避免的會出現只能存在乙個的類,比如執行緒池,對話方塊,配置設定等等,如果參與開發系統的人不止乙個 這是很常見的場景 就無法保證不會有兩個人同時在自己的 裡例項化了這個只能存在乙個的類。下面介紹的單件模式 單例模式 就可以在根源 只能存在乙個的類 上避免出現上面的問題。首先介紹一...

GOF 設計模式 單件模式 筆記

意圖 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性終點。結構 在以下情況使用它 對於某些類來說,只有乙個例項是很重要的,可以讓類自身儲存它的唯一例項,並這個類隱藏他的建立介面,並提供乙個訪問例項的介面。還可以使用惰性初始化,或者用乙個靜態內部類儲存。apublic class a public ...