Подтвердить что ты не робот

MVC с javaFX

Я борюсь с концепцией MVC с помощью javaFX. Я создаю приложение javaFX, используя файлы fxml.

Каждый файл fxml имеет назначенный контроллер, но я не думаю, что этот контроллер является одним из состояний шаблона MVC. Я думаю о нем как о каком-то ViewController, который содержит ссылки на объекты fxml (кнопки, панели и т.д.).

Моя проблема: где именно разница между этим "ViewController" и реальным "контроллером". Какой предмет должен делать что-то? Где я устанавливаю, например. actionListeners?

4b9b3361

Ответ 1

Мысли о MVC

MVC - довольно слабо определенный шаблон, который открыт для (часто несколько неопределенных) интерпретаций того, что означает каждая из вещей в MVC (особенно контроллер). Существует большое обсуждение архитектуры MVC в отношении инструментальных средств GUI от Мартина Фаулера.

На шаблонах проектирования и FXML

Явная обработка на основе FXML на основе JavaFX построена скорее как набор инструментов, а не полная структура разработки. Идея заключалась в том, что другие фреймворки могут быть наложены поверх JavaFX и FXML и базовые реализации JavaFX/FXML, а контроллеры для них не будут вызывать каких-либо задач или архитектурных ограничений в рамках более высокого уровня.

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

См. JavaFX и MVP - образец шаблонов дизайна для дальнейшего обсуждения.

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

Вам может быть выгодно использовать "упрямую" инфраструктуру JavaFX, такую ​​как afterburner.fx, которая использует контроллеры и FXML, но обеспечивает немного более жесткую структурированную структуру. Afterburner.fx следует модели Model View Presenter (MVP). Хотя Afterburner.fx предоставляет больше функциональности и структуры, чем простой JavaFX + FXML, он делает это минимально, добавив несколько дополнительных классов и API, которые вам нужно научиться использовать.

Ответ 2

Вы можете попробовать JRebirth с его индивидуальным шаблоном: Wb-CS-Mvc

Это двухуровневый шаблон MVC, первый MVC (уровень приложения) - это CSM, а второй - сам Mvc (ui-level).

  • Волна для обмена сообщениями и асинхронного управления внутренними событиями
  • Поведение для добавления общего кода к любому компоненту (C | S | M)
  • Команда для управления командами приложений (код многократного использования)
  • Сервис для обработки некоторого длительного обслуживания в пуле потоков
  • Модель для управления моделью вашего пользовательского интерфейса
  • Просмотр для создания пользовательского интерфейса
  • Контроллеры для обработки пользовательских событий

Вы можете запустить приложение JRebirth Tour, чтобы узнать больше (требуется Java 8):

http://apps.jrebirth.org/jaf/3.0.0/JRebirthTour-3.0.0.jar

java -jar JRebirthTour-3.0.0.jar

Вы также можете запустить демонстрационное приложение:

http://apps.jrebirth.org/demo/8.5.0/JRebirthDemo-8.5.0.jar

java -jar JRebirthDemo-8.5.0.jar

или просматривать слайды (слегка устаревшие): http://fr.slideshare.net/SbastienBordes/javafx-unleashed-with-jrebirth-application-framework