依存性注入についてよく読んで、グーグルで調べて、理論的には何ができるのか、どのように機能するのかを理解していますが、それを使った実際のコードベースを見たいです(Java / guiceが望ましいです)。
誰かが私にオープンソースプロジェクトを教えてもらえますか?そこで私はそれが実際にどのように使用されているかを見ることができますか?コードを参照してセットアップ全体を見ると、Webで見つけた紹介記事の通常のスニペット以上のものが表示されると思います。前もって感謝します!
依存性注入についてよく読んで、グーグルで調べて、理論的には何ができるのか、どのように機能するのかを理解していますが、それを使った実際のコードベースを見たいです(Java / guiceが望ましいです)。
誰かが私にオープンソースプロジェクトを教えてもらえますか?そこで私はそれが実際にどのように使用されているかを見ることができますか?コードを参照してセットアップ全体を見ると、Webで見つけた紹介記事の通常のスニペット以上のものが表示されると思います。前もって感謝します!
Wave Protocol Serverは、私のお気に入りのサンプル アプリです。
私はこの正確な問題に少し苦労しました。とても抽象的で単純なので、「やり方が間違っているのではないか」といつも心配していました。
バインディングを設定する Guice モジュールがメイン プロジェクトの一部だったため、他のプロジェクトに依存するメイン プロジェクトで使用していました。
ライブラリがモジュール自体を提供する必要があることに最終的に気付きました。その時点で、モジュールのインスタンス (特定のインスタンスではない) と、それにバインドされているインターフェースのみに依存できます。
さらに一歩進んで、Java 6 の新しいServiceLoaderメカニズムを使用して、クラスパスで使用可能なすべての Guice モジュールを自動的に見つけてインストールできます。次に、クラスパスを変更するだけで依存関係を交換できます (db-real.jar と db-mock.jar)。
あなたが Java ランドにいることは理解していますが、.NET スペースには、コントロール コンテナーの反転を使用して作成されたオープンソース アプリがいくつかあります。UI モジュールが依存関係解決モジュールへの参照を持たないCodeCampServerを確認してください。作業を行う HttpModule があります。(HttpModule は、ASP.NET でイベントを処理するプラグイン可能な単なる外部ライブラリです。CodeCampServer では、UI プロジェクトは、コンパイル時の参照なしで、実行時にこの DependencyRegistrarModule を読み込みます。)
依存性注入は、適切に使用すればビューから消える方法があると思います。それは、アプリケーションを初期化/配線する方法にすぎません。それよりも派手に見える場合は、おそらく手元にあるフレームワークの追加機能を見ている可能性があります。必要最小限の依存性注入ではありません。
編集:例を探すのではなく、実際に使い始めることをお勧めします。その後、思ったように動作しない場合は、ここに戻って質問を投稿してください:-)