Идея для архитектуры приложения UI - PullRequest
1 голос
/ 23 июня 2011

Я пишу свое первое настольное Java-приложение в автономном SWT / JFace (я не хочу использовать RCP); но это не проблема языка, поэтому не сосредотачивайтесь на технологии, которую я использую.

Чтобы в двух словах объяснить, что делает программное обеспечение, в главном окне есть папка с вкладками, каждый элемент вкладки представляет файл, который пользователь может редактировать. Файл представлен структурированным средством просмотра. В приложении есть меню и панели инструментов. В закладке есть контекстное меню.

У меня вопрос по архитектуре приложения. Я не знаю, как сделать хорошую архитектуру дизайна, чтобы код был правильно организован.

Каждое действие (в меню, в контекстных меню и на панели инструментов) может изменять содержимое выбранного элемента вкладки, поэтому я не знаю, что делать:

1 - элемент вкладки предоставляет множество открытых методов, которые вызываются всеми действиями? Таким образом, элемент вкладки будет иметь много функций: пример: действие добавления новой строки меню в меню или контекстном меню просто вызывает метод addNewLine () элемента вкладки?

2 - класс, который действует как контроллер, управляет папкой вкладок и всеми элементами вкладок и предоставляет множество открытых методов. пример: действие open меню File вызывает метод openFile () на контроллере, действие add new line вызывает контроллер, который знает активную вкладку, и добавляет строку, где это необходимо.

3 - каждое действие является конкретным классом и просто вызовите как можно меньше методов для элемента вкладки, чтобы обновить пользовательский интерфейс. пример: действие меню «Открыть файл» имеет логику для открытия «диалога открытия файла», чтения данных файла и вызова чего-то вроде addNewTab (ApplicationObject my object) непосредственно в компонентах пользовательского интерфейса

4- ...?

С вашей точки зрения, какая из них является наилучшей? Вы знаете, где я могу найти пример / документацию по дизайну для настольного приложения, подобного этому?

Заранее спасибо,

Fluminis

1 Ответ

0 голосов
/ 23 июня 2011

Я предлагаю вам прочитать, как разрабатывать приложения для событий (например, Java, Android, Flash или VB.Net), а конкретным ресурсом является книга Растущее объектно-ориентированное программное обеспечение .В этой книге авторы объясняют, как создавать и тестировать приложение Swing, и дизайн, который они используют, совершенен (с моей точки зрения, конечно).

...