10. Benefit of Dagger 2
• Simpler generated code
• Injection occur at compile time
• Faster Performance
• Easier to Debug
11. Dagger 2 API
• @Module for the classes whose methods provide
dependencies
• @Provides for the methods
within @Module classes
• @Inject to request a dependency (a constructor, a
field, or a method)
• @Component is a bridge interface between
modules and injection
12. Independent Class
public class Engine {
private int rpm;
public Engine(){
this.rpm = 0;
}
public void accelerate(int value){
rpm = rpm + value;
}
...
}
13. Dependent Class
public class Vehicle {
private Engine engine;
public Engine engine){
this.engine = engine;
}
public void increaseSpeed(int value){
engine.accelerate(value);
}
...
}
14. @Module Class
@Module
public class VehicleModule {
@Provides @Singleton
Engine provideEngine(){
return new engine();
}
@Provides @Singleton
Vehicle provideVehicle(){
return new Vehicle(new Engine());
}
}