Daggerってありますよね。コンパイル時に依存性を解決するのでパフォーマンス的に有利なDIコンテナです。
https://google.github.io/dagger/
依存関係の不備がコンパイル時にエラーになって発見できるのも、実行時にエラーが出たときの修正の難易度が高いAndroidアプリにはありがたいということで、Androidでよく使われてるようです。
基本的なオブジェクトの定義
I have a pen.
public class Pen { @Override public String toString() { return "ペン"; } }
I have an apple.
public class Apple { @Override public String toString() { return "アッポー"; } }
Ohh!!! Apple Pen!!!
public class ApplePen { Pen pen; Apple apple; public ApplePen(Pen pen, Apple apple) { this.pen = pen; this.apple = apple; } @Override public String toString() { return "" + apple + pen; } }