私は既存のアプリケーションで使用されるJavaライブラリを作成しています。私は依存性注入を使用しているので、テストは簡単です。私はSpringに精通していますので、テスト中に依存性注入を管理するために使用する予定でした。最終的にライブラリを使用するアプリケーションは、Springベースではなく、現在どのようなIoC/DIコンテナも使用していません。私の質問は、SpringやGuiceが使われていない場合に、依存関係を注入するための最良の方法は何でしょうか?オブジェクトをインスタンス化しワイヤリングするためのファクトリメソッドのようなものを検討する必要がありますか?依存関係はすべてライブラリ内にあるため、アプリケーションに各依存関係をインスタンス化してメインオブジェクトを作成させるのは適切ではないようです。ライブラリでの依存性注入の使用
5
A
答えて
4
SpringまたはGuiceが使用されていない場合、依存関係を注入するための最良のアプローチは何ですか?
あなたのライブラリがDIに優しいイディオムで書かれている場合。ひどいjava APIとして使用するのはかなり簡単です。あなたの過去の春の経験を考えてみましょう。そこには、春のモデルに完全に適合するが、春の前に書かれたライブラリがいくつかあります。私はnew
で何も悪いことがありませんが、setXX
の後に実際の仕事メソッドが呼び出されます。他のものの中でも、あなたのクライアントは信頼性の高い方法で呼び出されるinit
メソッドを呼び出すことを忘れることがあるので、特に注意してください。
オブジェクトをインスタンス化しワイヤリングするためのファクトリメソッドのようなものを考慮する必要がありますか?依存関係はすべてライブラリ内にあるため、アプリケーションに各依存関係をインスタンス化してメインオブジェクトを作成させるのは適切ではないようです。
クライアントアプリケーションに決定させます。あなたは図書館を提供しています。 APIクライアントに独自のオブジェクトを配線させます。例を挙げてください。後で、同じ例を使用して、クライアントのドメインでファクトリメソッドを作成することができます。たぶん、クライアントアプリケーション自体が自分自身を構成する方法を持っていて、あなたのライブラリがそれを利用するのに十分な柔軟性を備えていれば望ましいでしょう。
guiceを含めることもできます。ライセンスはApacheです。 Java全体のようなもの。
関連する問題
- 1. 依存性注入を使用した依存性注入器の注入
- 2. コマンドパターン使用時の依存性注入
- 3. インタフェースと依存性注入の使用
- 4. 依存性注入抽象ライブラリ
- 5. 依存性注入
- 6. 依存性注入
- 7. 依存性注入
- 8. Zend Framework依存性注入対Symfony2依存性注入
- 9. Groovyの依存性注入
- 10. コンストラクターの依存性注入
- 11. ApiControllerの依存性注入?
- 12. バリデータの依存性注入
- 13. 春の依存性注入
- 14. XPCOMの依存性注入
- 15. 依存性注入のクエリ
- 16. Javaの依存性注入
- 17. 依存性の注入
- 18. ダイナミックランタイム依存性の注入
- 19. 依存性の注入
- 20. Scalaの依存性注入
- 21. MVCの依存性注入
- 22. 依存性の注入
- 23. 依存性注入:コンストラクタ注入を使用
- 24. 依存性の注入使用してEJB注釈
- 25. ランタイムデータを使用した依存性注入:工場と直接の依存性
- 26. Symfony2での依存性注入のベストプラクティス
- 27. マルチモジュール環境での依存性注入(Guice経由)の使用
- 28. ユニットテストクラスでの依存性注入の使用
- 29. ASP.NETモジュール依存性注入
- 30. ASP.NETコア依存性注入