Guice 1.0 User's Guide和訳 その5
はじめに
- 当ページは、「google guiceをベースにWebアプリケーションを作ってみよう」の1コンテンツです。
- Guice 1.0 User's Guideの「Guice vs. Dependency Injection By Hand」を和訳しています。
- 原文はこちらを参照して下さい。
Guice vs. Dependency Injection By Hand - Guiceと手動DIの比較
お分かりの通り、Guiceを用いればファクトリークラスをいくつもいくつも作る必要はありません。クライアントの(サービスへの)依存性を解決するための明示的なコードを記述する必要は無いのです。もし依存性の解決を忘れてしまった場合は、Guiceは起動に失敗します。Guiceは、循環する依存性も上手く解決してくれます。
Guiceでは、スコープを明示的に、宣言的に指定できます。例えば、Guiceではセッションにオブジェクトを格納するための似たようなコードを何度も何度も記述する必要はありません。
現実においては、実行時に動的に実装クラスを決定するようなケースがしばしばあるかと思います。そういった場合はメタファクトリーやサービスロケータを作成することが一般的ですが、Guiceではそれらの労力を最小限にする「工夫」がなされています。
依存性の解決を手動で行う場合、DIというコンセプトに慣れていない場合は特にですが、古の習慣に捕われたり、結局直接オブジェクトに依存してしまったりしがちです。Guiceを用いれば、そのような現状を容易に一変させることができます。Guiceを使うことにより、全てがうまくいきます。