Стратегия для синхронизации строковых констант между Java / Flex? - PullRequest
3 голосов
/ 09 августа 2010

Допустим, у вас есть веб-приложение, в котором много бизнес-правил, построенных на сравнении строковых констант if-then. Они используются как на стороне клиента, так и на внутреннем коде, и в настоящее время жестко запрограммированы в обоих местах с большим количеством дублирования и иногда с ошибками. Какой разумный способ реорганизовать их? К сожалению, в большинстве случаев они должны существовать, поскольку использование полиморфизма было бы гораздо более отвратительным. Что-нибудь конкретное для flex / java? Есть ли простой способ сохранить все эти константы в одном месте и скомпилировать их в код клиента и сервера?

Edit: я действительно ищу способ разделить строковые константы между flex и java с проверкой всего времени компиляции. Единственная идея, о которой я могу подумать, - это генератор кода.

Ответы [ 3 ]

1 голос
/ 09 августа 2010

Разве и Flex, и Java не поддерживают простые файлы .properties, где содержимое этих файлов имеет такую ​​форму

key1=value 1
key2=value 2

и так далее ...

Так почему бы не определить общий файл .properties и поделиться им между двумя вашими проектами? Здесь также может помочь ваша система контроля версий. Например, если вы используете svn, вы можете просто поместить ваши файлы .properties в другой репозиторий и использовать svn: externals , чтобы разделить их между вашим flex и java-репозиторием.

Что касается загрузки и использования свойств, на следующих страницах показано, как это сделать на каждом языке / платформе:

Для Java: http://www.mkyong.com/java/java-properties-file-examples/

Для Flex: http://vatsalad.wordpress.com/2010/03/12/how-to-use-properties-fileresourcebundle-in-flex/

1 голос
/ 11 августа 2010

Генерация кода проще, чем вы думаете.Если вы действительно верите, что это то, что вам нужно сделать, я мог бы привести пример (пользовательскую задачу Ant, хотя ее можно запустить как простое «основное» приложение java), которую вы можете изменить для своих целей (особенно для строковых констант), есливы хотите.

Если я правильно понимаю, вы ищете что-то, что обеспечит вам проверку "ключа" во время компиляции (что также даст вам поддержку автозаполнения)?Так что да, файл свойств здесь не сильно поможет.

0 голосов
/ 09 августа 2010

Храните их в проекте, который распространяется как баночка.Вы также можете разместить там все классы утилит, чтобы избежать дублирования кода.

...