DaggerはAndroid用DIライブラリ。
とてもつもなくわかりやすいdagger2(2.11)入門 - Qiita
まずは、@Injectで、指定のオブジェクトに依存性を注入をする。
プロジェクトを作成。
最新だと、APIレベルのせいかエラーなので上の記事と同じに。
idをtextview1に。
上の記事を参考に、CoffeeMakerはこのように。
@Injectは、依存性を注入するメンバフィールドやコンストラクタに付ける。
これで、勝手にそのフィールドオブジェクトを生成し格納してくれる。
MainActivityはこうする。
DaggerMainActivity_CoffeeShopは、
ビルドすると自動生成される。
あとは、HeaterBaseを元に、Heater1とHeater2、PumpBaseを元に、Pump1とPump2を定義。
(ここは省略。)
CoffeeMakerのheaterとpumpのクラスによって、
こうだったり、
こうだったり。
ただ、PumpがHeaterに依存する場合などでは、CoffeeMakerでのクラスの書き換えで依存を切り替えられない。
まあ、この状態では依存性の注入も何もあったもんじゃない。
Sample/dagger/annotationInject/annotationInject/AI/AI_ at master · bg1bgst333/Sample · GitHub