К какому принципу из SOLID относится использование Dagger для внедрения зависимостей?

Использование Dagger для внедрения зависимостей относится к принципу Dependency Inversion Principle (D) из SOLID.

Короткий ответ

Что ответить на собеседовании

Использование Dagger для внедрения зависимостей относится к принципу Dependency Inversion Principle (D) из SOLID.

Подробный разбор

Ответ с пояснениями

Использование Dagger для внедрения зависимостей относится к принципу Dependency Inversion Principle (D) из SOLID.

Этот принцип гласит, что:

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

Dagger помогает реализовать этот принцип, предоставляя механизм для автоматического внедрения зависимостей через абстракции (интерфейсы или абстрактные классы), что снижает связанность компонентов и повышает тестируемость и гибкость кода.

Пример использования Dagger:

@Component
interface AppComponent {
    void inject(MyActivity activity);
}

class MyActivity {
    @Inject
    MyRepository repository;

    void onCreate() {
        DaggerAppComponent.create().inject(this);
        repository.loadData();
    }
}

Здесь MyActivity не создает MyRepository напрямую, а получает его через внедрение зависимостей, что соответствует принципу Dependency Inversion.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку