Junior — Middle
Can you explain what Dependency Injection is in C# and why it is needed?
sobes.tech AI
Answer from AI
Dependency Injection (DI) is a design pattern that allows objects, which a class depends on, to be passed from outside rather than created inside the class itself. In C#, this helps make the code more modular, testable, and maintainable.
Why is this needed:
- Simplifies replacing dependencies (for example, for testing, mock objects can be used).
- Reduces coupling between components.
- Improves code readability and maintainability.
Example of simple DI through constructor:
public interface ILogger
{
void Log(string message);
}
public class ConsoleLogger : ILogger
{
public void Log(string message) => Console.WriteLine(message);
}
public class UserService
{
private readonly ILogger _logger;
// Dependency is passed through the constructor
public UserService(ILogger logger)
{
_logger = logger;
}
public void CreateUser(string name)
{
// User creation logic
_logger.Log($"User {name} created.");
}
}
// Usage
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");