Back to questions
Junior — Middle
66
Можете объяснить концепцию Dependency Injection и объяснить её применение в разработке?
Answer from AI
sobes.tech AI
Dependency Injection (DI) — это паттерн проектирования, который позволяет передавать зависимости объекта извне, а не создавать их внутри самого объекта. Это повышает модульность, тестируемость и упрощает управление зависимостями.
В C# DI часто реализуется через конструктор, свойства или методы. Например, если у класса есть зависимость от интерфейса сервиса, то этот сервис передается в конструктор:
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;
public UserService(ILogger logger) {
_logger = logger;
}
public void CreateUser(string name) {
// логика создания пользователя
_logger.Log($"User {name} created.");
}
}
// Использование
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Ivan");
В реальных приложениях часто применяют контейнеры внедрения зависимостей (например, Microsoft.Extensions.DependencyInjection), которые автоматически создают и управляют жизненным циклом объектов.