Встречается на собеседованиях • сегодня

Что такое внедрение зависимостей

Внедрение зависимостей (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).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы