Back to questions
Junior
231
Для чего нужен Dependency Injection в разработке на C#?
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("Alice");
Таким образом, DI способствует инверсии управления (IoC) и улучшает архитектуру приложения.