DI — передача зависимостей извне, а не создание через new внутри класса.
Разбор
- Конструкторный DI самый прозрачный.
- В ASP.NET Core — IServiceCollection.
- Регистрируйте интерфейс → реализация.
- Анти-паттерн: Service Locator повсюду.
Итог
DI отделяет создание зависимостей от бизнес-логики.