2011-01-29 3 views
3

Я хотел бы спросить, с точки зрения дизайна, было ли целесообразно размещать слушателей для GUI в «представлении» или «контроллере». Коллега считает, что «взгляд» - самое естественное место, но я не уверен.MVC и Java GUI Слушатели

ответ

2

Если вы говорите о Swing, то, как previouslydiscussed, MVC в Java не является ясным и простым, как предлагает шаблон. Поэтому, чтобы ответить на ваш вопрос, зависит от того, как вы определяете «вид» и «контроллер» в отношении конкретного приложения, и что вы подразумеваете под «размещение слушателей» в том или ином.

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

Смежные вопросы