2012-05-06 4 views
0

У меня есть два проекта; один серверный проект и один клиентский проект. В моем сетевом коде между ними я отправляю запросы. Я не хочу вводить 0, 1, 2 для разных типов запросов в коде, поэтому вместо этого я использую константы. Моя проблема заключается в том, что я не хочу объявлять эти константы в обоих проектах, а скорее в одном месте, поскольку константы одинаковы для обоих проектов. Кто-нибудь знает хорошее решение для этого?Обмен константами между проектами

Редактировать: Клиентский проект является андроидным приложением, а сервер - сервлет, который должен обрабатывать запросы от клиентов.

ответ

6

Создать проект библиотеки с интерфейсом. Этот интерфейс объявляет константы. Поделитесь этой библиотекой в ​​обоих проектах. Если вы используете какое-то управление зависимостями, как в maven, это довольно просто.

EDIT:

Использование окончательного класса, как описано в http://en.wikipedia.org/wiki/Constant_interface лучше! Но ядро ​​состоит в том, чтобы использовать проект библиотеки и совместно использовать общую часть обоих проектов в отдельной банке.

+0

Выполнение этой плохой практики см. _Constant Interface Antipattern, Effective Java, Item 17_ – Kai

+0

... или [этот вопрос] (http://stackoverflow.com/questions/2659593/what-is-the-use- of-interface-constants) – Kai

+0

@ user714965 Только ** реализация ** этот интерфейс - плохая практика, действительно. Но писать окончательный, неинтересный класс все же лучше, поскольку он делает невозможным делать плохую вещь. –

0

Я не знаю о вашей архитектуре, но если клиент делает звонки на сервер, у вас уже есть зависимость.

Таким образом, вы должны добавить проект сервера как зависимость в своем проекте клиента. Затем вы можете определить класс (или, возможно, перечисление в вашем случае) в проекте сервера, который содержит константы. Здесь он принадлежит, поскольку сервер предоставляет этот метод.

Смежные вопросы