シングルトン設計パターンはポインタの代わりに参照を返すことができますか?
C でシングルトンを作成する従来のアプローチには、インスタンス化されたオブジェクトへのポインタを返すことが含まれます。物体。ただし、代わりに参照を返すという代替手法が提案されています。
このアプローチは、シングルトン オブジェクトを手動で解放する責任がなくなるため、論理的であるように見えます。その理由は、誰がシングルトンへの参照を保持しているのかを判断するのが難しく、手動で割り当て解除を試みるのは賢明ではないことにあります。
静的関数メソッドを採用すると、遅延初期化が達成され、オブジェクトの作成と破棄が確実に行われます。 1 回のみ:
<code class="cpp">class S { public: static S& getInstance() { static S instance; return instance; } private: S() {} S(S const&); // Don't Implement. void operator=(S const&); // Don't implement };</code>
さらに、コピーを防止してシングルトン プロパティを維持するには、コンストラクターをプライベートにする必要があり、デフォルトのコピー コンストラクターと代入演算子をオーバーライドする必要があります。
ただし、この手法では、すべてのシナリオでスレッド セーフが提供されるわけではないことに注意することが重要です。このような場合は、次のリソースを検討してください:
シングルトンを利用する理由を慎重に評価して、それが適切な設計選択であることを確認してください。
以上がシングルトン設計パターンはポインタの代わりに参照を返すことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。