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