@I_suss

Зачем создавать слой с интерфейсами?

Здравствуйте, такой вопрос: изучая чужие проекты написанные на java spring boot я заметил, что многие делают таким образом: создают, например, директорию "service", в нем создают директорию "impl", в "service" создают интерфейс какого то сервиса, а в "impl" реализуют данный интерфейс, собственно возникает вопрос, а какой от этого профит ? почему нельзя сделать тоже самое только без интерфейса ? на сколько это подход вообще хороший и стоит ли поддерживаться такой структуры кода или она уже считается устаревшей и так никто уже не пишет ?
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 2
xez
@xez
TL Junior Roo
Причины такие:
0. Это правило хорошего тона. Сеньеры думаю интерфейсами, а не реализациями.
1. В случае изменения реализации, код, использующий интерфейсы не придется изменять.
2. Есть разница в том, какой механизм будет использоваться при проксировании объекта в зависимости от того реализует он интерфейс или нет. (jdk dynamic proxy / cglib)
3. В некоторых случаях вам вообще не обойтись без выделения интерфейса.
Ответ написан
Комментировать
@My1Name
При проектировании, без интерфейсов, очень трудно представить весь объём работ для той или иной задачи. Интерфейсы по большому счёту, вкратце описывают алгоритм всей программы. Это шаблон проектирования, который позволяет при необходимости менять части программы (реализацию).

изучая чужие проекты написанные на java spring boot

Если долго гуглить уроки при изучении Spring-а, то можно найти много примеров, которые на самом деле ничего не делают, а посредством интерфейсов объясняют принцип работы. Именно для этого они и нужны.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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