設計模式之 單件模式(Singleton)

2021-06-02 02:25:51 字數 382 閱讀 8580

單件模式的實現很簡單,基本上沒什麼好說,就說幾點:

為什麼要單件模式?

因為程式中很多物件只能有乙個,如日誌檔案,印表機等,如果出現多個就麻煩了。

為什麼不用全域性變數?

的確用全域性變數可以實現只有乙個物件,但是全域性變數必須在程式啟動的時候就初始化,萬一我們的物件很耗資源,但又不一定用到的話,全域性變數就不合適了。另外在多執行緒的情況還可以把互斥等處理細節封裝在裡面。

實現的時候的幾個注意點

1)建構函式,拷貝建構函式,=運算子都要宣告為私有,這樣才能保證只有乙個物件

2)getinstance()函式必須宣告為static,因為我們的建構函式都是私有的,而要呼叫一般的方法只有先得到物件,就繞進了雞生蛋還是蛋生雞的情況了,所以必須定義為static。

Java設計模式 單例模式(single)

目錄目的 應用例項 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。菜鳥教程 乙個國家有乙個首都 windows 是多程序多執行緒的,在操作乙個檔案的時候,就不可避免地出現多個程序或執行緒同時操作乙個檔案的現象,所以所有檔案的處理必須通過唯一的例項來進行。第一種 package com.ga...

設計模式之單件模式

有一些物件我們只需要乙個 也只能有乙個 比如 執行緒池 cache 對話方塊 處理偏好設定和登錄檔的物件 日誌物件 充當印表機 顯示卡等裝置的驅動程式的物件。利用靜態類變數 靜態方法和適當的訪問修飾符,就可以做到只存在乙個例項。這是乙個經典的單件模式 public class singleton p...

設計模式之單件模式

總結性 1 和全域性變數不同的是 利用單件模式,可以在需要時才建立物件 2 作用 常用於管理共享資源,eg 資料庫連線池或者執行緒池 3 單件模式 確保乙個類只有乙個例項,並提供乙個全域性訪問點 4 有點 單件可以延遲例項化 5 單件模式的類圖 類名 singleton 靜態變數 static un...