Guice 1.0 User's Guide和訳 その5

はじめに


前へ | 目次 | 次へ

Guice vs. Dependency Injection By Hand - Guiceと手動DIの比較

お分かりの通り、Guiceを用いればファクトリークラスをいくつもいくつも作る必要はありません。クライアントの(サービスへの)依存性を解決するための明示的なコードを記述する必要は無いのです。もし依存性の解決を忘れてしまった場合は、Guiceは起動に失敗します。Guiceは、循環する依存性も上手く解決してくれます。

Guiceでは、スコープを明示的に、宣言的に指定できます。例えば、Guiceではセッションにオブジェクトを格納するための似たようなコードを何度も何度も記述する必要はありません。

現実においては、実行時に動的に実装クラスを決定するようなケースがしばしばあるかと思います。そういった場合はメタファクトリーやサービスロケータを作成することが一般的ですが、Guiceではそれらの労力を最小限にする「工夫」がなされています。

依存性の解決を手動で行う場合、DIというコンセプトに慣れていない場合は特にですが、古の習慣に捕われたり、結局直接オブジェクトに依存してしまったりしがちです。Guiceを用いれば、そのような現状を容易に一変させることができます。Guiceを使うことにより、全てがうまくいきます。