Структура кода приложений Java
-
27-09-2019 - |
Вопрос
Мое приложение Java не очень большая, но я хотел бы сделать это «правильным способом». Ищете предложения, чтобы не сделать большой беспорядок ...
Я использую Swing, Wank Application Framework и базу данных H2.
Это однократное приложение с различными вкладками. Большинство вкладок будут отражать некоторые аспекты данных в базе данных. Некоторые из них смогут его изменить. Некоторые вкладки будут иметь кнопки или действия, которые будут перенаправлять на другую вкладку ... это в основном это.
Я хотел бы сохранить вещи чистыми, довольно портативными и гибкими (могут включить некоторые вкладки, например или добавить немного).
Вот вопросы:
1) Как иметь вкладки «обновленные», когда содержимое базы данных изменяется? Реализуйте какой-нибудь интерфейс прослушивателя? Должен ли я определить этот интерфейс или есть что-то уже существующее, которое я могу повторно использовать?
2) Как «ссылку» различные вкладки вместе, чтобы легко прыгать от одного к другому (и, возможно, придется нести какой-то аргумент для настройки вкладки назначения вправо «View»)
3) Если я устанавливаю некоторые предпочтения с некоторыми фильтрами в другой части приложения, как я могу разделить такие настройки со всем приложением?
И когда я спрашиваю «Как», я действительно имею в виду «какой лучший способ» ... Я могу получить эту работу уже ... Просто ищу правильный инструмент для использования, рисунок дизайна или такой.
Решение
При использовании Swing вы можете использовать панель с помощью планшетов, чтобы иметь табличную макет.
Внедрить слушатель (как вы планируете). Посмотрите на наблюдаемый интерфейс в Java.
Вы можете реализовать Singleton (например, Prefterencemanager Class), чтобы удерживать предпочтение и получить доступ к его приложению для доступа к свойствам.
Другие советы
Существуют разные стратегии здания приложений GUI. Здесь какая-то статья о.
Вы действительно хотите, чтобы нажать модель, где сервер должен поддерживать подключение к каждому клиенту, а затем обновлять их все, когда что-то меняется? Это осуществимо с горсткой клиентов, но быстро становится проблематичным. Вероятно, лучше использовать модель тяги, где клиент вручную (периодически?) Запрашивает обновления. Это также хороший способ использовать оптимистичные блокировки с помощью Last_Modified поле в БД. Попытка обновления, если он изменится, поскольку вы в последний раз перезагрузите, предупредите пользователя и позвольте им перезаписать / слиться.
Что касается качания в целом, лучшая практика заключается в том, чтобы обозначить все, что это не графический интерфейс, связанный с основными классами («деловая логика»), что огонь с событий. Зарегистрируйте все ваши классы Swing в качестве соответствующего слушателя событий и обновите GUI соответствующим образом (Handutivilities.invokelater () - ваш друг здесь).