В чем преимущество наличия интерфейса в сервисах Spring Boot REST API / Micro? - PullRequest
0 голосов
/ 24 октября 2018

У меня есть интерфейс DAO и класс DAOImpl в моем проекте Spring boot REST API.Но некоторые из моих товарищей по команде говорили мне, что нет необходимости иметь интерфейс в REST API.

Их аргументом является то, что если код является общим в виде файла .jar (например, файл jar драйвера базы данных), то необходимо иметь интерфейс.Поскольку jar добавляется в classpath, и конечный пользователь может переопределить методы, определенные в файле jar.Принимая во внимание, что REST API развертываются на серверах и могут использоваться любым языком программирования через HTTP

. Я знаю, что нет конкретного ответа на это.Но я просто хочу знать преимущества / недостатки наличия интерфейса в REST API / Microservice

Ответы [ 4 ]

0 голосов
/ 24 октября 2018

Однажды я провел тест на прием на работу в компанию в Великобритании, и я получил этот отзыв:

"И ужасные классы Impl…"

На данный момент яначал сомневаться в использовании интерфейсов в микросервисах, где все доступно через HTTP.Подумав об этом, я понял, что у меня никогда не было ситуации, когда интерфейсы были бы действительно полезны в этой ситуации.

Я создал несколько личных проектов без них (если этого не требует Spring), и мне это понравилось.Возможность менять сервисы, не окрашивая их красным в IDE, была большим плюсом.

Кроме того, меньше кода для обслуживания.Я бы проголосовал за это для новых проектов.

0 голосов
/ 24 октября 2018

«интерфейс» НЕ является специфичным для REST API (или) Spring, это один из объектно-ориентированных принципов, в терминах программирования на Java это «интерфейс».

Ваши друзья отчасти верны.

В общем случае «интерфейс» используется для определения «протокола» и позволяет реализации быть специфичной для «исполнителя».

Теперь контр-аргумент, который я могу сделать, заключается в том, что если ваша компания хочетстандартизировать процесс между «отделами» (или) «проектами», специфичными для данной бизнес-спецификации DAO (забыли о совместном использовании как .jar или что-то еще)?

0 голосов
/ 24 октября 2018

Интерфейс является наилучшей практикой в ​​этой ситуации, и его реализация занимает 1 минуту.

0 голосов
/ 24 октября 2018

Преимущество использования интерфейса заключается в том, что вы используете службу, которая является общей для всех ваших API отдыха, например службу безопасности с spring-security.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...