Задать вопрос
@itfan

Зачем нужны интерфейсы при реализации внедрения зависимостей?

Изучаю Java и дошёл до темы внедрения зависимостей. Разобрался, что такое зависимость класса и что такое интерфейс. Однако не могут понять, зачем пользоваться интерфейсами при реализации внедрения зависимостей?

Допустим, есть класс A и класс Б. Чтобы избавиться от зависимости, в классе Б не создаётся объект на основе класса А. Конструктор принимает объект интерфейса. В свою очередь, класс А является реализацией этого интерфейса и в основной программе его объект отправляется как аргумент конструктора класса Б. Зачем тут нужен интерфейс? Не проще отправить сразу объект? Если избавиться от интерфейса, работает так же само.
  • Вопрос задан
  • 207 просмотров
Подписаться 1 Простой 1 комментарий
Ответ пользователя Василий Банников К ответам на вопрос (3)
Да, вполне можно и без лишнего интерфейса, если у этого класса возможна только одна реализация.

Если класс реализует какую-то сложную логику или имеет сайд-эффекты, то для тестов будет проще внедрять его упрощённую версию без того кода - вот для этого и нужен интерфейс, чтобы можно было переопределить
Ответ написан
Комментировать