c 設計模式之單件模式

2021-04-13 14:29:03 字數 646 閱讀 8959

在軟體系統中,經常有這樣一些特殊的類,必須保證他們在系統中只存在乙個例項,才能確保他們的邏輯的正確性。

而單件模式,可以保證乙個類有且只有乙個例項並提供乙個訪問它的全域性訪問點,構建單件模式方法比較多,比較流行的做法是,在類中巢狀乙個靜態變數,並在第乙個建立該例項的時候設定該變數,進入類建構函式時候,再檢驗該變數。

以下事例:

//單件模式

public

class spooler

public

static spooler getspooler(string filename)

else

}public

string getname()

}按鈕事件:

private

void button7_click(object sender, system.eventargs e)

else

spooler s2=spooler.getspooler(txword.text);

if (s2!=null)

else

}結果顯示:

c 設計模式之單件模式

c 中單件模式的意圖是為了保證乙個類 僅有乙個例項,並提供乙個訪問它的全域性訪問點。動機 對於一些類來說,只有乙個例項是很重要的。雖然系統中可以有許多印表機,但卻只應該有乙個印表機假離線,只應該有乙個檔案系統和乙個視窗管理器。乙個資料濾波器只能有乙個a d轉換器。乙個會計系統只能專用於乙個公司。對於...

設計模式之單件模式

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

設計模式之單件模式

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