@andralexandra22

Зачем нужны интерфейсы для слоев DAO и Service в Java?

Здравствуйте! Изучаю недавно совсем Java и Spring по видео урокам. Увидела код, где в слоях сервиса и ДАО создаются сначала интерфейсы, а потом уже их реализация и с этой реализацией идет работа. Сам смысл интерфейсов из ООП мне понятен, но зачем конкретно в этих структурах они нужны. не могу разобраться. Заранее спасибо!
  • Вопрос задан
  • 741 просмотр
Решения вопроса 1
@Akela_wolf
Extreme Programmer
Интерфейсы нужны для возможности замены реализации не затрагивая основной код. При использовании интерфейсов основной код ничего не знает об деталях реализации (слабая связанность). Соответственно, реализацию можно вынести в отдельный модуль (изолировать сложность). Если основной код ссылается непосредственно на класс, содержащий реализацию (сильная связанность), то сложность программы возрастает и сопровождение программы усложняется. Поэтому интерфейсы особенно нужны на границах подсистем.

Если реализация отделена от основного кода, то становится легко подменить её в тестах, например, подсунуть in memory реализацию, вместо БД. См. fake object (не путать с mock). Это еще один важный плюс интерфейсов.

Возможно, в простых программах интерфейсы не слишком нужны. Но, поскольку вы говорите об учебном примере, то использовать их (приучая сразу к хорошему, правильному стилю) - это правильно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы