プログラミングにおけるデザインパターン、「Singletonパターン」を知っている人は多いと思います。
インスタンスを一つしか生成できないクラスなどを作って利用するパターンです。
C++では、次のように実装できますね。
class Singleton
{
private:
//コンストラクタ、コピーコンストラクタ、=演算子を封印
Singleton(){}
Singleton( const Singleton& );
void operator=( const Singleton& );
public:
//static変数は一度だけ生成されるので、唯一のインスタンスとなる
static Singleton* GetInstance()
{
static Singleton instance_;
return &instance_;
}
//何か実装
}
しかし、「静的クラス」というのを知ったときに、「これはそのままSingletonなんじゃないか」と思ったのです。
「静的クラス」というのは、
・インスタンス生成が出来ない
・静的メンバしか持てない
という特徴を持ったクラスです。
グローバルなインスタンスのように扱えるので、「比較的安全なグローバル変数」とも言われたりするシングルトンにぴったりでは?
「静的クラス シングルトン」でググってみると、同じことを考えている人多数。
割合と一般的なのかしらん。
ちょっとコレで実装を進めてみようかな。
ちなみに以下のような感じになります。 [/size]