設計模式系列之單件

2021-04-06 17:42:03 字數 841 閱讀 1285

設計模式系列之單件

凌麗軟體工作室

日期:2005.11.24

單件的意義:

1.保證乙個類僅有乙個例項

2.提供乙個全域性訪問的途徑

原理:1.類的靜態變數全域性唯一

2.類在沒有例項化也可以訪問靜態方法

3.外界無法訪問類的私有變數

實現步驟:

1.定義乙個私有靜態成員變數,型別為類的指標

2.定義乙個公有靜態方法

3.使構造方法成為私有或保護成員

例項:定義如下:

class csystempara 

;實現如下:

csystempara* csystempara::m_pobject=null;

csystempara* csystempara::instance()

return m_pobject;

}void csystempara::destroyinstance()

使用的時候呼叫 instance() 即可。

如:csystempara::instance()->getname();

在程式結束前呼叫 csystempara::destroyinstance();

說明:單件提供了乙個比全域性變數更安全的乙個途徑,同時單件可以有子類,用這種方法

來配置乙個應用是很容易的,根據應用的變化,甚至可以限制例項的個數(用靜態成員

控制)如果把例項的指標改為物件型別則可以不用寫 destroyinstance 來析構,例如:

static csystempara m_pobject;          // 例項物件

設計模式系列 單件模式

public sealed class singleton pattern 這個方法是將類的初始化放到nested這個類中進行操作,並具有很多的優勢,很好的一種方法 完整的例項 編寫於2010年8月3號 public class count singleton static public count...

設計模式之單件模式

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

設計模式之單件模式

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