Джерси вызывает один ресурс из другого, чтобы повторно использовать код - PullRequest
2 голосов
/ 23 октября 2011

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 28 октября 2011
So is it better to have duplication in this case

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

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

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

...