私たちの製品に使用しているライブラリの1つは、アクセスにシングルトンを使用しています。私はそれが静的インスタンス(オープンソースではない)として実装されていると確信しています。これは単一のドキュメントアプリケーションでうまく動作しますが、アプリケーションに複数のドキュメントが読み込まれている可能性があります。このような状況ではC++でのグローバル統計の複数インスタンスの作成?
Instance* getInstance() {
static Instance* inst = new Instance();
return inst;
}
、確実に つのインスタンスよりも多くを作成するためのいくつかの方法があります:?私はこのような何かを書かれているインスタンスへのアクセスを想定していますか私が考えることができるのは、IPCをすべて一緒に結びつけるために、何らかのタイプのIPCを処理して使用すること以上のものを持つことだけです。あまりハッキーなことは考えられない。
私はいくつかのタイプのセッショントークンを実装するようにベンダーに依頼しているので、複数の同時インスタンスを持つことができますが、それらは大きく、私たちは小さいです。
コーリー
編集:
- マシンは、グローバルな静的は基本的に大きな工場であるWindowsマシン
- です。私はそう、私は簡単に
(私が知っている世界的な静を再初期化する方法はありません)「このセッションからすべてのリソースを解放する」と言うのではなく、いくつかの危険なペテンを試すことができますいくつかのタイプのセッショントークンをしたいです私が望むものを得るために、私は自分のクラスですべてを包み込み、すべてのゲッターにセッションキーを追加するつもりです。内部的には、割り当てられたものを追跡して、リソースを返すために自分のリリースメソッドを追加します。これは多くの理由から最適ではありませんが、私は良いアイデアは考えられません。
皆様に感謝します。
あなたはどのOSプラットフォームを使用していますか? – Skrymsli
これがシングルトンが悪い理由です。単一のオブジェクトだけが存在することが本当に真剣でない限り、それはシングルトンであってはなりません。オブジェクトのインスタンスがいくつあるかを他の人に決定させます。 –