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

Что такое dependency inversion principle

Принцип инверсии зависимостей (DIP) — один из SOLID-принципов, гласящий:

  1. Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
  2. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Пример:
Вместо прямого использования конкретного класса:

csharp
public class OrderService  
{  
    private readonly SqlDatabase _database;  
    public OrderService() => _database = new SqlDatabase();  
}  

Применяем DIP через интерфейс:

csharp
public interface IDatabase { void Save(); }  
public class SqlDatabase : IDatabase { ... }  

public class OrderService  
{  
    private readonly IDatabase _database;  
    public OrderService(IDatabase database) => _database = database;  
}  

Плюсы:

  • Гибкость (легко заменить реализацию).
  • Тестируемость (можно подменить mock-объектами).
  • Снижение связанности кода.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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