Встречается на собеседованиях • сегодня
Что такое инверсия зависимостей Dependency injection
Инверсия зависимостей (Dependency Inversion Principle, DIP) — принцип SOLID, который гласит, что модули верхнего уровня не должны зависеть от модулей нижнего уровня, а оба должны зависеть от абстракций. Dependency Injection (DI) — это паттерн, реализующий DIP, позволяющий внедрять зависимости извне, а не создавать их внутри класса.
Пример без DI:
csharp
public class OrderService
{
private readonly Database _db = new Database(); // Жёсткая зависимость
public void SaveOrder() => _db.Save();
}Пример с DI:
csharp
public interface IDatabase
{
void Save();
}
public class OrderService
{
private readonly IDatabase _db;
public OrderService(IDatabase db) => _db = db; // Зависимость внедрена
public void SaveOrder() => _db.Save();
}Преимущества DI:
- Уменьшает связность кода
- Упрощает тестирование (можно подменить реальную зависимость mock-объектом)
- Делает код гибче и поддерживаемее
В C# DI часто реализуют через контейнеры (Microsoft.Extensions.DependencyInjection, Autofac и др.), которые управляют созданием и временем жизни объектов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы