джерси, вызывающий один ресурс из другого для повторного использования кода

#java #rest #resources #jersey

#java #отдых #Ресурсы #джерси

Вопрос:

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

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

Однако у меня также есть resouce, который делает то же самое для URL-адресов. За исключением того, что я делаю здесь, это извлекаю домены из URL-адреса и эффективно выполняю ту же логику, что и с классом DomainResource, поскольку, как только у меня есть домен из URL-адреса, мне нужно выполнить точно такой же поиск. Однако вместо повторного использования существующих методов DomainResource я дублирую и вызываю те же методы в моем классе URLResouce.

Итак, лучше ли в этом случае дублировать и разделять ресурсы, или возможно (плохая / хорошая предварительная подготовка) вызвать один ресурс из другого, в случае, если URLResouce будет делегировать DomainResource? Как это звучит?

Ответ №1:

Общий код должен быть в служебном классе. Каждый из ваших ресурсов (с помощью которых, я думаю, вы управляете методами, помеченными @GET ) обычно не вызывал бы друг друга. Я бы поместил fetchDomains метод в служебный класс. Тогда метод контроллера / службы / ресурса для получения доменов будет вызывать этот служебный метод напрямую, а метод контроллера / службы / ресурса для получения доменов из URL-адресов сначала извлекает домен, а затем вызывает служебный метод.

Ответ №2:

 So is it better to have duplication in this case
  

Нет, в любом случае, потому что дублирование уменьшает вашу концепцию oops.Поэтому, пожалуйста, постарайтесь сохранить общий код в отдельном классе.