PPAPで学ぶDaggerによるDI

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;
    }
}
続きを読む