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

Для чего нужен DI

DI (Dependency Injection) — это паттерн проектирования, который позволяет внедрять зависимости в классы извне, а не создавать их внутри. Это делает код более гибким, тестируемым и поддерживаемым.

Преимущества DI:

  • Уменьшает связанность кода (loose coupling).
  • Упрощает тестирование (можно подменять зависимости моками).
  • Облегчает поддержку и масштабирование.

Пример с DI:

csharp
public interface ILogger
{
    void Log(string message);
}

public class ConsoleLogger : ILogger
{
    public void Log(string message) => Console.WriteLine(message);
}

public class Service
{
    private readonly ILogger _logger;
    
    // Внедрение зависимости через конструктор
    public Service(ILogger logger)
    {
        _logger = logger;
    }
    
    public void DoWork()
    {
        _logger.Log("Work done!");
    }
}

// Использование:
var logger = new ConsoleLogger();
var service = new Service(logger);
service.DoWork();

Без DI (плохой пример):

csharp
public class Service
{
    private readonly ILogger _logger = new ConsoleLogger(); // Жёсткая привязка
    // ...
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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