インスタンス変数が GetInstance メソッドで静的変数として宣言されたシングルトン パターンの実装を見てきました。このような:
SomeBaseClass &SomeClass::GetInstance()
{
static SomeClass instance;
return instance;
}
このアプローチには、次のような良い面があります。
- GetInstance が初めて呼び出されたときにのみ、このオブジェクトの作成を担当するのはコンパイラであるため、コードはより単純です。
- インスタンスへの参照を取得する方法は他にありませんが、GetInstance メソッドを使用し、インスタンスを変更する方法は他にありませんが、GetInstance メソッド内であるため、コードはより安全です。
このアプローチのマイナス面は何ですか? これはスレッドセーフですか?