C++設計モードのSingletonモード(単例モード)
1144 ワード
単例モードは実際のプログラミングで最も広く使われている設計モードと言える.実際のプログラミングの過程で、私たちはいくつかの資源に対して往々にして1つの例しか要求できない.例えば、C++/Cの開発をする時、各インタフェースは1つのオブジェクトであり、これらの窓オブジェクトの操作に対して、一般的には開いたフォームである.フォームオブジェクトの操作は、単一のモードの具体的な使用です.
単例モードは実は3点,(1)私有構造関数(2)私有指向クラスの静的ポインタ変数(3)静的ポインタ変数を取得する関数が共通している.
1.単一クラスの定義
2.実際の呼び出し
コンストラクション関数がプライベートではnewによって新しいオブジェクトを生成できません
プログラム全体にp 1のオブジェクトしかないことを保証します.
単例モードは実は3点,(1)私有構造関数(2)私有指向クラスの静的ポインタ変数(3)静的ポインタ変数を取得する関数が共通している.
1.単一クラスの定義
#pragma once
#include
class CSingleton
{
private:
CSingleton(void); //
static CSingleton* single; //
public:
static CSingleton* GetInstance(); //
void operation();
};
#include "Singleton.h"
CSingleton* CSingleton::single=NULL; //
CSingleton::CSingleton(void)
{
}
CSingleton* CSingleton::GetInstance() // static
{
if(single==NULL)
{
single=new CSingleton();
}
return single;
}
void CSingleton::operation()
{
printf("CSingleton operation
");
}
2.実際の呼び出し
CSingleton* p1=CSingleton::GetInstance();
p1->operation();
コンストラクション関数がプライベートではnewによって新しいオブジェクトを生成できません
CSingleton* p2=new CSingleton(); //
プログラム全体にp 1のオブジェクトしかないことを保証します.