Back to questions
Junior — Middle
71
Можете объяснить, что такое внедрение зависимостей (Dependency Injection) в C# и зачем она нужна?
Companies where asked
Бренд Монитор
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 service = new UserService(logger);
service.CreateUser("Alice");