メインアプリケーションから開始されたスレッドがある場合。このスレッドでイベントが生成されます。イベントが生成されるたびに、オブジェクトが作成されます。そのオブジェクトでは依存関係が必要なので、私はそのオブジェクトを注入したい。この依存関係を作成されたオブジェクトにどのように渡すことができますか?私は捨て去りを下に渡す必要がありますか(スレッド内で動作するクラスに依存性を知らせる)、またはこれを行うにはより良い方法がありますか?私はUnity btwを使用しています。オブジェクトを作成するスレッドの依存性注入
1
A
答えて
3
最も安全な方法は、最初に各スレッドに新しいオブジェクトグラフを作成させることです。他のスレッドによる依存関係を渡さないでください。
依存性注入では、オブジェクトの存続期間に関する知識を集中化しようとします。この集中管理された場所はComposition Rootと呼ばれます。あるスレッドから別のスレッドへの依存関係を開始するとき、コードのそれらの部分は、それらの依存関係を渡すことが安全かどうかを知る必要があります。例えば、それらの依存関係はスレッドセーフですか?これは多くの状況で分析するのは簡単かもしれませんが、他の実装との依存関係を変更することはできません。なぜなら、コード内にこれが起こっている場所があり、どの依存関係が引き継がれるのかを知る必要があるからです。この知識をもう一度分散させることで、DI構成の正しさを判断するのが難しくなり、競合状態を引き起こすような方法でコンテナを誤って構成しやすくなります。
この件に関する詳細はこのwikiページで確認できます:How to work with dependency injection in multi-threaded applications
関連する問題
- 1. オブジェクトの作成時の依存性注入
- 2. 依存性注入と実行時オブジェクトの作成
- 3. 依存性注入を使用した依存性注入器の注入
- 4. 依存性注入
- 5. Zend Framework依存性注入対Symfony2依存性注入
- 6. 依存性注入構成のテスト
- 7. 春の依存性注入
- 8. Groovyの依存性注入
- 9. MVCの依存性注入
- 10. 依存性の注入
- 11. XPCOMの依存性注入
- 12. コンストラクターの依存性注入
- 13. 依存性注入のクエリ
- 14. ダイナミックランタイム依存性の注入
- 15. Wcf依存性注入
- 16. CA2000と依存性注入
- 17. ASP.NETモジュール依存性注入
- 18. 依存性注入ライフサイクル
- 19. PHPファクトリパターン依存性注入
- 20. カスタムResourceProviderFactory依存性注入
- 21. アダプターと依存性注入
- 22. 春:セッター依存性注入
- 23. 依存性注入コンテナ
- 24. Windowsサービス依存性注入
- 25. 依存性注入Laravel
- 26. データアクセス、ユニットテスト、依存性注入
- 27. MSTest TestMethod依存性注入
- 28. angularjs - ランタイム依存性注入?
- 29. 依存性注入Grails Webflow
- 30. WCFと依存性注入