Рекомендуемые книги по разработке настольных приложений с использованием MVC

Ищу рекомендации по книгам о MVC на рабочем столе. Если они используют Java, это бонус.

Немного предыстории: я пишу настольное приложение на Java. Это аудиоприложение, которое имеет несколько представлений и центральную модель, называемую библиотекой, со списками воспроизведения, списками эффектов и структурой папок для их организации. В этом приложении я хотел бы иметь меню, контекстные меню и поддержку перетаскивания для различных действий пользователя. Я боролся с тем, как добиться этого с помощью MVC.

Я начал со всей логики / контроллеров в основном классе, но начал разделять их на их собственные классы. Теперь мне нужно начать использовать слушателей и наблюдателей для обработки сообщений между представлениями и контроллером. Это привело к тому, что я создал несколько интерфейсов и перебрал моих слушателей в нескольких местах для отправки различных сообщений. Но этот код цикла продолжает повторяться (не DRY), поэтому я предполагаю, что теперь я должен создавать разные типы классов событий, создавать эти события в своих представлениях и использовать один метод в представлении, чтобы запускать его для различных слушателей. .

Обновление: Возможно, это не имеет большого значения, но я использую SWT, а не Swing.


person Community    schedule 03.10.2008    source источник


Ответы (6)


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

Я обнаружил, что классического MVC недостаточно, вам нужно изучить более конкретные шаблоны, такие как Модель презентации и тому подобное. Единственная найденная мной книга, в которой описываются эти шаблоны применительно к настольным приложениям, - это Desktop Java Live, автор Скотт Делап. В то время как большинство книг по свингам посвящены методам решения конкретных проблем (как создать таблицу без сетки, как реализовать круглую кнопку и т. Д.), Книга Делапа поможет вам разработать приложение для свинга среднего размера, лучшие практики и т. Д. .

person alves    schedule 05.10.2008

Практически любые книги java, eclipse, netbeans Swing должны быть на высоте.

1) БЕСПЛАТНО --- Мыслить на Java (http://mindview.net/Books/TIJ/DownloadSites)
2) CORE java, том 1 и 2
3) Хаки Swing: https://rads.stackoverflow.com/amzn/click/com/0596009070
4) netbeans RCP: https://rads.stackoverflow.com/amzn/click/com/B00132S6UU 5) eclipse Rich client programming - https://rads.stackoverflow.com/amzn/click/com/0321334612

Надеюсь это поможет.

BR,
~A

person anjanb    schedule 03.10.2008

В C #, а не в Java, но у Джереми Миллера есть куча сообщений о настольных приложениях и MVP / MVC (и многих других подобных вещах).

person Yuval    schedule 03.10.2008

Чтобы добавить свои 2 цента, я рекомендую книгу Head First Design Patterns. В нем очень хорошее объяснение паттерна MVC (на Java). Он основан на других шаблонах проектирования, также обсуждаемых в книге, таких как Observer, Strategy и Composite, которые используются в MVC.

Лучший учебник по MVC, который я читал. Настоятельно рекомендуется.

person urini    schedule 07.10.2008

Не забывайте учебники Swing; например, руководство по событиям Swing.

И, пожалуйста, имейте в виду SwingWorker или обработку событий в отдельном рабочем потоке. Я ни в коем случае не эксперт по Swing, но я знаю, что большая часть воспринимаемой медлительности приложений Java Desktop во многом связана с работой, выполняемой в потоке событий. Если такая работа занимает некоторое время, весь графический интерфейс не отвечает. Трудно исправить потом, не так уж и сложно сделать правильно, если помнить об этом.

Что касается книг, мне очень приятно читать серию Core Java Кей Хорстманна и Гэри Корнелла. Однако речь идет о Java (включая Swing), а не о MVC.

person extraneon    schedule 03.10.2008

Мне нужно добавить к моей вышеупомянутой записи, что бесплатная BOOK - THINKING IN JAVA рассказывает об ООП, MVC, а также о Swing. Не уверен, что в нем обсуждаются различные реализации MVC.

person anjanb    schedule 03.10.2008