C++シングルトンデザインパターン


備考

シングルトンは、クラスがインスタンスを1つだけ有しそれへのアクセスのグローバルポイントを提供するように設計されています。 1つのインスタンスまたは便利なグローバル・アクセス・ポイントのみを必要とし、両方のアクセス・ポイントを必要としない場合は、シングルトンに切り替える前に他のオプションを検討してください。

グローバル変数 、コードを推論するのをより困難にする可能性があります。たとえば、呼び出し関数の1つがシングルトンから受け取ったデータに満足していない場合は、最初にシングルトンの不良データを最初に与えるものを追跡する必要があります。

シングルトンはまた結合を促進します。これは結合されたコードの2つのコンポーネントを記述するために使用される用語で、各コンポーネントは自己包含の独自の測定を減らします。

シングルトンは並行性に劣ります。クラスにグローバル・アクセス・ポイントがある場合、すべてのスレッドはそれにアクセスでき、デッドロックや競合状態に陥る可能性があります。

最後に、怠惰な初期化は、間違った時刻に初期化された場合、パフォーマンスの問題を引き起こす可能性があります。遅延初期化を削除することで、多態性(サブクラスを参照)などのシングルトンの興味深い機能を削除することもできます。

出典: Robert Nystromの ゲームプログラミングパターン

シングルトンデザインパターン 関連する例