單例模式(singleton pattern)
單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例類的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。
單例模式的要點有三個:
1.某個類只能有乙個例項;
2.它必須自行建立這個例項;
3.它必須自行向整個系統提供這個例項。
單例模式典型的結構圖如下所示:
由上圖我們可以了解到,我們通過維護乙個static成員變數來記錄這個唯一的物件例項,通過乙個instance()介面來獲得這個唯一的例項。
下面是乙個用c++語言實現的singleton模式的小例子幫助大家理解單例模式。注意(vc6.0可以執行)
**片斷1:singleton.h
#ifndef _singleton_h_
#define _singleton_h_
#include using namespace std;
class singleton
; #endif //~_singleton_h_
**片斷2:singleton.cpp
#include "singleton.h"
#include using namespace std;
singleton* singleton::_instance = 0;
singleton::singleton()
我們來看一下mfc中有關的單例模式。
每乙個mfc
應用例項都派生於類
,每個應用程式都只應該有乙個派生於
的例項。
在設計上保證了乙個應用程式不能生成多個例項,並且提供了一系列的函式用於對該唯一物件的一些屬性的訪問,包括
,afxgetinstancehandle
,afxgetresourcehandle
,等作為獲取唯一例項物件的介面。
mfc是通過
assert
來防止多次構造
物件的。在第二次構造
物件時,
assert
內的表示式為假,將會彈出錯誤提示。
介紹MFC框架中涉及到的設計模式 一
最近看了幾篇有關mfc框架中涉及到的設計模式的 為幫助大家深入了解mfc框架特此總結,希望能幫助到大家。設計模式 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結 使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性 設計模式分為三種型別 建立型模式 結構型模式,行為型模式。設...
GPU設計中涉及到的座標
在gpu硬體處理以及opengl建模過程中都將設計到6種空間處理,直接構成了6種座標處理的環境 1 model space或者object space 這個空間是物件空間,與其他空間沒有關係,只是直接形成這個物體的具體輪廓以及其他屬性 attribute 物件的最終構成都是有vertex都成,由他的...
JavaScript中涉及到的RegExp型別
正規表示式 由一些普通字元和特殊字元組成的,用以描述一種特定的字元規則的表示式,它是用來限制使用者在網際網路中輸入的規則 建立正規表示式 var 變數名 正規表示式的內容 修飾符 var reg 123456789 i var 變數名 new regexp 正規表示式的內容,修飾符 var reg ...