まず最初に、Boost.DIは、C++での依存性注入に基づいてコードを作成するための非常に便利なツールのようです14。 Boost.DIを使って基本的なアプリケーションを作成したのは非常に速いですが、私がまだ理解できるのは、いくつかの注入された依存関係を持つオブジェクトの動的に初期化されたコンテナを扱う方法です。 Boost.DIは、インジェクタオブジェクトを介して、アプリケーション起動時にmainのアプリケーションクラスツリー全体を初期化しますが、例えば、いくつかのクラス "Foo"を持っていて、XMLリソースを受け取り、たくさんのオブジェクト "Bar"(いくつかすでに作成されているモジュールへの依存関係)。インジェクタオブジェクトをFooに渡すか、Fooにいくつかのファクトリを注入し、そのファクトリにバーを作成する必要がありますか?インジェクタを注入することは本当に奇妙に思えますし、インジェクタをグローバルにすることで、誰でも何かを作成できる危険な状況につながります。工場に注入すると同じ問題がどこか別の場所に移動するだけで、工場はインジェクタオブジェクトなしでバーを作成できますか?あなたのシナリオではDI Boost C++ 14と動的コンテナ
2
A
答えて
0
あなたはFoo
クラスからXMLをロードし、Bar
を作成する方法を知っているすべてのロジックを取り、このロジックは、あなたが作成するときにBar
に結合する工場出荷時のラムダから呼び出すことができますように聞こえますインジェクタ。
XMLをロードしてBar
を作成するロジックが、インジェクタによって作成される必要がある他のクラスに依存する場合、このインジェクタは、ファクトリのラムダが受け取るパラメータになります。グローバルインジェクタである必要はありません。
関連する問題
- 1. google test/mock vs boost for C++ 14/C++ 17
- 2. DIコンテナのサービスロケータ
- 3. IOCコンテナと動的言語
- 4. DIコンテナはこの
- 5. Symfony DIコンテナのコンフィグレーションプロンプト
- 6. DIコンテナと具体的な値/構成データ
- 7. boost :: shared_ptrと動的キャスト
- 8. IOC/DIコンテナと子ウィンドウ作成のジレンマ
- 9. 理論: "サービスロケータ" "IOCコンテナ" "IOC" "DI"
- 10. RESTクライアントのPHP - DIコンテナ
- 11. Windows MobileアプリケーションのIoC/DIコンテナ
- 12. PHPでDIコンテナを手動で作成/使用しますか?
- 13. C++ 11とC++ 14のconstexpr
- 14. Boostライブラリは、私は最近、C++ 14でブーストライブラリをインストールしようとした
- 15. 設定ファイルと共有ライブラリでboost-diを使用する
- 16. C++ 14:
- 17. オブジェクトスコープの主な目的DI C#
- 18. 動的コンテナ
- 19. 動的コンストラクタインジェクションを使用するDI
- 20. プレイストアセットapilevel 14-19が自動的に
- 21. dotnetcoreでDIコンテナを取得する
- 22. ASP.NetコアDIコンテナからサービスを取得
- 23. オーラDIコンテナを作成するには?
- 24. 単体テストでのDIコンテナの使用
- 25. C#actual DateTime - 14
- 26. ASP.NET 5とビルトインされたDIコンテナのリクエストごとのスコープ
- 27. IoC/DIコンテナが「コンテナ」と呼ばれるのはなぜですか?
- 28. Zend DiとServiceManagerの依存関係注入コンテナ
- 29. OwinStartupのときのDIコンテナの使い方
- 30. C++でのネットワーキングライブラリ14