AndroidおよびJava用の高速依存インジェクタ Dagger
どのアプリケーションにも、最も良いクラスは、BarcodeDecoder
、 KoopaPhysicsEngine
、 AudioStreamern
のようなクラスです。これらのクラスには依存関係があります。おそらく、BarcodeCameraFinder
とDefaultPhysicsEngine
、とHttpStreamer
。
対照的に、アプリケーションの最悪のクラスは、何もせずにスペースを占めるクラスです:BarcodeDecoderFactory
、CameraServiceLoader
、 MutableContextWrapper
。これらのクラスは面白いものを結ぶ不器用なダクトテープです。
DaggerはこれらのFactoryFactory
クラスを置き換えるものです。興味深いクラスに集中することができます。依存関係を宣言し、それを満たす方法を指定し、アプリを出荷します。
標準のjavax.injectアノテーション(JSR-330)を構築することにより、各クラスを簡単にテストできます。FakeCreditCardService
RpcCreditCardService
交換するためだけにボイラープレートの束を必要としません。
依存性注入はテストのためだけではありません。再利用可能で互換性のあるモジュールを作成することも容易になります。すべてのアプリで同じAuthenticationModule
を共有できます。また、開発中にDevLoggingModule
を走らせ運用中にProdLoggingModule
実行して、それぞれの状況で正しい動作を得ることができます。
詳細については、QCon 2012のJesse Wilsonによる入門講演をご覧ください。
coffee makerを作ることによって、依存性注入とDaggerを実演します。コンパイルして実行できる完全なサンプルコードについては、Daggerの coffee exampleを参照してください。
Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plus)
- 作者: 有野和真
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
Ulefone U007 pro SIMフリースマートフォン / 5.0インチ / 8GB / MTK6735 / Android 6.0 / LTE (ブラック) [並行輸入品]
- 出版社/メーカー: Ulefone
- メディア: エレクトロニクス
- この商品を含むブログを見る
引用元: