Как организовать контроллеры/презентеры в большом приложении JavaFx 2.0?

Для проекта я работал над настольным приложением JavaFX 2.0 (пользовательский интерфейс keytool). Как работает JavaFXx2.0 (во всяком случае, в моем проекте), обработка событий пользовательского интерфейса происходит в самих классах пользовательского интерфейса JavaFX 2.0 (например: события onclicked() или слушатели изменения свойств).

Сейчас я использую статический класс с методом getController(), который все классы UI используют для доступа к единственному контроллеру приложения (мне показалось неудобным передавать контроллер всем 50+ классам UI).

Однако проблема в том, что этот единственный контроллер становится очень большим! У него слишком много методов (все методы бизнес-логики, которые должны быть доступны моим UI-классам). Несмотря на то, что он передает вызовы методов только моей модели/сервису, все еще существует множество исключений, которые необходимо перехватывать на уровне контроллера для обработки их в UI (показывать сообщения об ошибках и т.д.).

Кто-нибудь знает чистый способ заставить весь этот паттерн MVC/MVP работать лучше для моего приложения без того, чтобы классы UI / Controller / Model напрямую зависели друг от друга? Может быть, отдельный контроллер для каждого случая использования? Но тогда как мне сделать так, чтобы нужный класс UI получал нужный контроллер, не зная об этом напрямую? Может быть, используя интерфейс?

16
задан Jop 8 January 2012 в 16:36
поделиться