Я пытаюсь спроектировать «основной» класс (-ы) приложения Rich Desktop на основе платформы NetBeans 7. Это приложение будет использовать службы HTTP и через «push-систему» через TCP будет получать сообщения.
- Мы 3 разработчика, и мы хотим разрабатывать модули параллельно
- Приложение будет многоуровневым (данные, бизнес, презентация)
- Мы будем использовать Модель презентации для разделения обязанностей
- Некоторые детальные данные (например, bean Person) будут совместно использоваться несколькими экранами (и, возможно, отображаться на нескольких экранах одновременно)
- ...
Мы можем разрабатывать отдельные экраны, но мы не знаем точно, как организовать все приложение и определить содержание каждого модуля.
- Итак, есть ли у вас какой-либо совет (шаблон / лучшая практика / книга / пример приложения) для координации / управления взаимодействиями внутри всего приложения?
- Любой совет о том, как определить содержание модулей?
Спасибо!
Небольшой пример, иллюстрирующий то, что я хочу построить: Приложение Foo User Management
- Запустите приложение
- Слева [explorer] у нас есть список платформ (список хранится в локальном файле)
- Вверху у нас есть кнопка для добавления новой платформы (также доступна при нажатии правой кнопки мыши)
- Двойным щелчком по платформе приложение вызывает службу HTTP и получает полный список пользователей. Этот список отображается в [редакторе] (в JTable)
- Запускается фоновый процесс: через TCP-соединение мы получаем сообщения
- Можно добавить нового пользователя благодаря кнопке на панели инструментов
Если приложение запускается на другом ПК и пользователь подключен к той же платформе, его список пользователей будет обновляться динамически (добавление / удаление / статус: {offline / online}) (спасибо сообщениям)
В будущем это будет модуль чата.
Мой вопрос (другими словами): какой-нибудь совет / лучшая практика, чтобы выбрать содержание каждого модуля? Если PM (Модель презентации) - это хороший способ отделить представление / бизнес и данные и создать экраны, как лучше связать несколько экранов на основе PM? Представьте, что мы разрабатываем модуль чата, как добавить запись «Обсудить с ...» в контекстное меню, которое можно щелкнуть правой кнопкой мыши по списку пользователей?
источник
Ответы:
Исходя из вашего требования, для начала процесс обработки ядра должен быть сделан из Command Pattern, а позже вы можете использовать шаблоны Template для обработчиков запросов. И так далее и тому подобное. Ничто не называется шаблоном мастера. Если бы они были, они нам больше не нужны.
Идея состоит в том, чтобы иметь дизайн, который позволит вам развиваться с требованиями.
Я бы начал с создания интерфейса базового модуля и дал бы интерфейс всем и некоторым утилитам вокруг него. Пусть каждый реализует свои модули на основе базового модуля.
источник
Я думаю, что вы смотрите на довольно классический шаблон MVC, поддерживаемый сервисами (я полагаю, RESTful). Ключ должен отделить сервис (ы) от пользовательского интерфейса. Это не потому, что вы вводите альтернативный интерфейс, а потому, что дает вам ясность в том, каким должен быть интерфейс вашего сервиса.
Поэтому, когда вы думаете об
getPeople
услуге, убедитесь, что вы думаете о том, как вторичный (не Swing) пользовательский интерфейс будет взаимодействовать со службой. Если вы будете иметь это в виду, вы придете к довольно гибкому / развязанному решению.источник