Guice-overview
Google Guice-概要
Guiceは、オープンソースのJavaベースの依存性注入フレームワークです。 これは軽量であり、Googleによって開発および管理されています。 この章では、Guiceフレームワークの概要を説明します。
依存性注入
すべてのJavaベースのアプリケーションには、連携して動作し、エンドユーザーが動作しているアプリケーションと見なすものを提示するオブジェクトがいくつかあります。 複雑なJavaアプリケーションを記述する場合、アプリケーションクラスは他のJavaクラスから可能な限り独立している必要があります。これにより、これらのクラスを再利用し、ユニットテスト中に他のクラスとは独立してテストできるようになります。 依存性注入(またはワイヤリングと呼ばれることもあります)は、これらのクラスを接着し、同時にそれらを独立した状態に保つのに役立ちます。
テキストエディタコンポーネントを備えたアプリケーションがあり、スペルチェックを提供したいと考えています。 標準コードは次のようになります-
ここで、TextEditorとSpellCheckerの間に依存関係が作成されていることに注意してください。 制御の反転シナリオでは、代わりにこのようなことをします-
ここでは、TextEditorはSpellCheckerの実装について心配するべきではありません。 SpellCheckerは独立して実装され、TextEditorのインスタンス化時にTextEditorに提供されます。
Guiceを使用した依存性注入(バインディング)
依存性注入は、Guice Bindingsによって制御されます。 Guiceはバインディングを使用して、オブジェクトタイプを実際の実装にマップします。 これらのバインディングはモジュールとして定義されます。 モジュールは、以下に示すようにバインディングのコレクションです-
インジェクタはオブジェクトグラフビルダであり、モジュールはそのコアビルディングブロックです。 したがって、最初のステップは、インジェクターを作成し、インジェクターを使用してオブジェクトを取得することです。
上記の例では、TextEditorクラスオブジェクトグラフはGuiceによって構築され、このグラフにはTextEditorオブジェクトとその依存関係がWinWordSpellCheckerオブジェクトとして含まれています。