AndroidおよびJava用の高速依存インジェクタ Dagger

どのアプリケーションにも、最も良いクラスは、BarcodeDecoder、 KoopaPhysicsEngine、 AudioStreamernのようなクラスです。これらのクラスには依存関係があります。おそらく、BarcodeCameraFinderDefaultPhysicsEngine、とHttpStreamer

対照的に、アプリケーションの最悪のクラスは、何もせずにスペースを占めるクラスです:BarcodeDecoderFactoryCameraServiceLoader、 MutableContextWrapper。これらのクラスは面白いものを結ぶ不器用なダクトテープです。

DaggerはこれらのFactoryFactoryクラスを置き換えるものです。興味深いクラスに集中することができます。依存関係を宣言し、それを満たす方法を指定し、アプリを出荷します。

標準のjavax.injectアノテーション(JSR-330)を構築することにより、各クラスを簡単にテストできます。FakeCreditCardServiceRpcCreditCardService交換するためだけにボイラープレートの束を必要としません。

依存性注入はテストのためだけではありません。再利用可能で互換性のあるモジュールを作成することも容易になります。すべてのアプリで同じAuthenticationModule を共有できます。また、開発中にDevLoggingModuleを走らせ運用中にProdLoggingModule実行して、それぞれの状況で正しい動作を得ることができます。

詳細については、QCon 2012のJesse Wilsonによる入門講演をご覧ください。

coffee makerを作ることによって、依存性注入とDaggerを実演します。コンパイルして実行できる完全なサンプルコードについては、Daggerの coffee example参照してください。 

 

Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plus)

Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plus)

 

 

 

 引用元:

square.github.io