Inversion of Control - инверсия управления. Абстрактный принцип, набор рекомендаций для написания слабо связанного кода. Каждый компонент системы должен быть как можно более изолированным от других, не полагаясь в своей работе на детали конкретной реализации других компонентов. Имеет несколько реализаций.
Dependency Injection(DI) - процесс предоставления внешней зависимости программному компоненту. Является специфичной формой Inversion of control(IoC, когда она применяется к управлению зависимостями. В полном соответствии с принципом единственной обязанности объект отдаёт заботу о построении требуемых ему зависимостей внешнему механизму.