Встречается на 12% собеседований по C#
Что такое внедрение зависимостей
Внедрение зависимостей (Dependency Injection, DI) — это шаблон проектирования, при котором зависимости объекта передаются извне, а не создаются внутри него. Это делает код более гибким, тестируемым и поддерживаемым.
Основные преимущества:
- Уменьшает связанность между компонентами
- Упрощает тестирование (можно подменять зависимости mock-объектами)
- Делает код более читаемым и понятным
Пример без DI:
csharp
public class OrderService
{
private readonly ILogger _logger = new FileLogger(); // зависимость жестко закодирована
}Пример с DI:
csharp
public class OrderService
{
private readonly ILogger _logger;
public OrderService(ILogger logger) // зависимость внедряется через конструктор
{
_logger = logger;
}
}В .NET для DI часто используют встроенный контейнер или сторонние библиотеки (Autofac, Ninject).
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы