私は、UpdateControllerクラスがデータを更新するロジックを管理するソリューションを用意しています。このコントローラは、データ(ClaimData、StatementDataなど)を管理するためのさまざまなクラスを呼び出します。これらのデータ・ハンドラー間で接続を共有する最良の方法は何ですか?シングルトンを使用するか、接続を管理して各データ・ハンドラーに渡す別のクラスを作成しますか?アプリケーションがマルチスレッドの場合はどうなりますか?複数のデータハンドラ間でのOracle接続の共有
ありがとうございます。
このようなほとんどのデータプロバイダまたはODACまたは組み込みのSQLServerプロバイダは、接続をプールしているので、接続です。 C#で暗黙的にスレッドを使用しているときと同じです。フレームワークが注意します。接続を開く、使用する、閉じる - これがパターンです - フレームワーク内で実際に何が起こっているのかを判断します。そのようなフレームワークを使用していない場合は、パラメータ依存性注入として接続を渡すことが最善の方法です。シングルトンは悪いコードです。 – Hanan
お返事ありがとうございます。私はシングルトンが悪い考えであることに同意します、そして、それはここで私に使用するために提案されたものです。プールは、マルチスレッドを使用するアプリケーションで動作しますが、スレッドセーフである必要がない場合は、接続を共有する方が効率的ではありませんか? 悲しいことに、私はDependency Injectionに精通していません。再度、感謝します。 – areyling
将来的にスレッドが必要な場合は、シングルトンを変更する大きなポイントになるでしょう...効率に関しては、プールのアプローチは現在のシナリオではあまり効率的ではありませんが、確かに測定可能ではありません。 ... – Yahia