Потрібна порада щодо проектування взаємодії між різними частинами моєї програми


10

Я намагаюся розробити "основний" клас (-ів) програми Rich Desktop на базі платформи NetBeans 7. Цей додаток буде споживати послуги HTTP і через "push систему" через TCP отримуватиме повідомлення.

  • Ми 3 розробники і хочемо паралельно розробляти модулі
  • Додаток буде шаруватим (Дані, Бізнес, Презентація)
  • Ми будемо використовувати презентаційну модель , щоб розділити відповідальність
  • Деякі деталізовані дані (наприклад, особа в зернах) поділяться кількома екранами (і, можливо, відображатимуться на кількох екранах одночасно)
  • ...

Ми можемо розробити окремі екрани, але ми не знаємо точно, як організувати всю програму та визначити вміст кожного модуля.

  1. Отже, чи є у вас поради (зразки / найкраща практика / книга / зразок) для координації / управління взаємодіями всередині програми?
  2. Будь-які поради щодо визначення вмісту модулів?

Дякую!


Невеликий приклад для ілюстрації того, що я хочу створити: Додаток для управління користувачем Foo

  1. Запустіть додаток
  2. Зліва [explorer] у нас є список платформ (список зберігається у локальному файлі)
  3. У верхній частині у нас є кнопка, щоб додати нову платформу (також доступна правою кнопкою миші)
  4. Подвійним клацанням миші на платформі додаток викликає послугу HTTP і отримує повний список користувачів. Цей список відображається в [редакторі] (в JTable)
  5. Починається фоновий процес: через TCP-з'єднання ми отримуємо повідомлення
  6. Додавання нового користувача можна завдяки кнопці на Панелі інструментів

Якщо програма запущена на іншому ПК та якщо користувач підключений до тієї самої платформи, її Список користувачів буде оновлено динамічно (додавання / видалення / статус: {offline / онлайн}) (завдяки повідомленням)

В майбутньому модуль чату буде наданий.

Моє запитання (іншими словами): будь-яка порада / найкраща практика для визначення змісту кожного модуля? Якщо PM (презентаційна модель) є хорошим способом розділити перегляд / бізнес і дані та створити екрани, то який найкращий спосіб зв’язати кілька екранів на основі PM? Уявіть, що ми розробляємо модуль чату, як додати запис "Обговорити з ..." до меню контексту, доступного клацанням правою кнопкою миші на списку користувачів?


3
Не ясно, про що ви питаєте. Як щодо надання невеликого прикладу для ілюстрації вашого питання?
Роберт Харві

Чудовий пост Гертяна Віленги. Містить висловлювання тверджень Тома Уілера (член команди NetBeans Dream): java.dzone.com/news/how-to-split-into-modules
Destroyica

Відповіді:


5

Зважаючи на вашу вимогу, для початку роботи з базовими елементами повинні бути виготовлені з командного шаблону, а пізніше ви можете використовувати шаблони шаблонів для процесорів запитів. І так далі. Немає нічого, що називається «Шаблон майстра». Якби вони були, вони нам більше не потрібні.

Ідея полягає в тому, щоб мати дизайн, який дозволить вам розвиватися з вимогами.

Я б почав зі створення інтерфейсу базового модуля і дав би інтерфейс всім та деяким утилітам навколо нього. Нехай кожен реалізує власні модулі на основі базового модуля.


3

Я думаю , ти дивишся на досить класичний MVC-зразок, підкріплений послугами (RESTful я припускаю). Ключовим моментом буде відокремити послугу від користувальницького інтерфейсу. Це не тому, що ви впроваджуєте альтернативний інтерфейс користувача, а тому, що дає чіткість у тому, яким повинен бути ваш сервісний інтерфейс.

Тому, коли ви думаєте про getPeopleслужбу, переконайтеся, що ви думаєте про те, як вторинний (не swing) інтерфейс взаємодіяв би зі службою. Якщо ви пам’ятаєте про це, ви придумаєте досить гнучкі / розв'язані рішення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.