CEN206 Object-Oriented Programming
Types of Dependency Injection
1. Constructor Injection
Dependencies are provided through a class constructor.
class Service {
private final Repository repository;
public Service(Repository repository) {
this.repository = repository;
}
}
2. Setter Injection
Dependencies are provided through setter methods.
class Service {
private Repository repository;
public void setRepository(Repository repository) {
this.repository = repository;
}
}
3. Interface Injection
Dependencies are provided through an interface method.
interface RepositoryInjector {
void injectRepository(Repository repository);
}
class Service implements RepositoryInjector {
private Repository repository;
@Override
public void injectRepository(Repository repository) {
this.repository = repository;
}
}