Junior — Middle
Can you explain the difference between the Inversion of Control principle and the Dependency Injection mechanism?
sobes.tech AI
Answer from AI
Inversion of Control (IoC) is a principle where the control of creating and binding objects is delegated to an external container or framework, rather than being implemented directly in the code. This reduces component coupling and increases system flexibility.
Dependency Injection (DI) is a specific way to implement IoC, where the dependencies of an object are provided from outside (for example, through a constructor, setter, or interface).
Example in Java:
class Service {
private Repository repo;
// Dependency is injected via constructor
public Service(Repository repo) {
this.repo = repo;
}
}
Here, IoC is the idea that Service does not create the Repository itself but receives it from outside (inversion of control). DI is the specific mechanism of passing this dependency through the constructor.