製品に使用しているライブラリの 1 つは、アクセスにシングルトンを使用します。静的インスタンスとして実装されていると確信しています (オープンソースではありません)。これは単一のドキュメント アプリケーションではうまく機能しますが、アプリには複数のドキュメントが読み込まれている場合があります。インスタンスへのアクセスは次のように記述されていると想定しています。
Instance* getInstance() {
static Instance* inst = new Instance();
return inst;
}
このような状況で、複数のインスタンスを確実に作成する方法はありますか? 私が考えることができる唯一のことは、プロセス以上のものを持ち、何らかのタイプの IPC を使用してすべてを結び付けることです。これほどハックなことは考えられません。
複数の同時インスタンスを持つことができるように、何らかのタイプのセッション トークンを実装するようにベンダーに依頼しましたが、それらは大きく、私たちは小さいです。
コーリー
編集:
- マシンは Windows マシンです
- グローバルな静的は基本的に大きな工場です。「このセッションからすべてのリソースを解放する」と簡単に言うことができるように、何らかのタイプのセッション トークンが必要です (私が知っているグローバルな静的を再初期化する方法はありません)。
私が望むものを得るために危険な悪ふざけを試みるのではなく、すべてを独自のクラスでラップし、すべての getter にセッション キーを追加します。内部的には、割り当てられたものを追跡し、独自の release メソッドを追加してリソースを返します。これは多くの理由で最適ではありませんが、より良いアイデアは思いつきません。
素晴らしいフィードバックをありがとう。