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

Что такое принцип инверсии зависимостей

Принцип инверсии зависимостей (DIP) — один из SOLID-принципов, гласящий, что модули высокого уровня не должны зависеть от модулей низкого уровня. Оба должны зависеть от абстракций. Абстракции не должны зависеть от деталей — детали должны зависеть от абстракций.

Пример без DIP:

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

Пример с DIP:

csharp
public interface IDatabase
{
    void Save(Order order);
}

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

public class SqlDatabase : IDatabase { ... }
public class MongoDatabase : IDatabase { ... }

Преимущества:

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

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

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

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