2014-12-14 2 views
-2

Для группового проекта для школы мы должны создать программу, которая реализует шаблон MVC.Реализация шаблона MVC и наблюдателя

Сложность, которую я имею, заключается в понимании того, как шаблон MVC реализуется в java с помощью SWING, делает ли представление компонентами SWING?

Еще одна вещь, с которой мне трудно понять, - это то, что обновляет что. Например, в одной статье говорится, что представление «исполняет» контроллер, затем контроллер обновляет модель соответствующим образом, модель уведомляет представление, а представление затем извлекает данные из модели.

Хотя то, что я узнал о шаблоне MVC, состоит в том, что у контроллера есть экземпляр модели и вида, чтобы он мог взаимодействовать с обоими. но тогда, если я нажму кнопку в представлении, как контроллер знает, чтобы что-то сделать с моделью? И для этого примера, который clas (ses) является/является Наблюдателем (s) и какие clas (ses) являются Наблюдаемыми (s)?

Еще одна идея, которую я получил, заключается в том, что если мы используем шаблон MVC, как описано выше, это Observer, а модель - Observable, но все еще оставляет вопрос о том, как контроллер знает, когда обновлять модель?

Если вам кажется неясным, пожалуйста, уточните в комментариях, и я отвечу.

+0

Пожалуйста, можете ли вы отформатировать свой вопрос так, чтобы его можно было прочитать? – SMA

+0

@almasshaikh лучше? –

+0

Думаю, вам нужно быть более четким в вопросе вашего точного вопроса. В настоящий момент вопрос слишком широк. Можете ли вы немного сузить его? –

ответ

1

View взаимодействует с контроллером, контроллер связывается с моделью и наоборот.

Скажите, что у вас есть класс модели Graph, который содержит точки графика. Цель ваших просмотров - отобразить этот график. Класс Graph будет Observable, который Контроллер наблюдает. Если контроллер наблюдает за изменением, он будет сообщать об обновлении/изменении просмотра соответствующим образом. Если вы нажмете кнопку на представлении, скажите, чтобы отобразить другой объект графика, ваша кнопка имеет actionListener, которая просит контроллер изменить график.

И да, ваши классы просмотра создавали бы компоненты Swing.

+0

Итак, в 'actionListener'i есть экземпляр' controller', но контроллеру нужен экземпляр представления, чтобы он мог обновлять представление, как я его программирую? –

+0

Вид создается (и, вероятно, сохраняется в поле) контроллером. – Marv

+0

Но как мне взаимодействовать с контроллером с точки зрения? –

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