Я пишу приложение Swing, а затем до my previous question, установили с использованием шаблона Model-View-Presenter, чтобы отделить пользовательский интерфейс от бизнес-логики.Применение шаблона MVP к JDialogs
Когда мое приложение запускается, он выполняет следующий код:
Model model = new BasicModel();
Presenter presenter = new Presenter(model);
View view = new SwingView(presenter);
presenter.setView(view);
presenter.init();
, который создает пользовательский интерфейс. События генерируются View
и делегируются Presenter
. Затем Presenter
манипулирует Model
и обновляет View
соответственно.
Чтобы обработать некоторые события, мне нужно получить дополнительную информацию от пользователя. В случае этих событий, я считаю, что для Swing-представления необходимо создать новое окно JDialog
.
Одна линии мышления заставляет меня чувствовать это может быть соответствующим кодом в Orignal Presenter
:
public void handlePreferences() {
Preferences prefs = view.getPreferences();
model.setPreferences(prefs);
}
То есть, содержание каждого JDialog
должен представлять особый объект, который должен быть извлечен из View
и обновленного в Model
. Однако это оставляет вопрос: я должен создать новый Model
для представления объекта Preferences
и нового Presenter
для обработки событий в этом JDialog
?
Мне кажется, что создание нового Presenter
и Model
внутреннего к оригинальному View
заставляет меня сделать много работы, которая будет труднее порт, если я хотел изменить пользовательский интерфейс для использования JSF, например.
Пожалуйста, добавьте комментарии для уточнения.
«JDialog рассматривается как просто расширение View, он является членом View, как JButton будет», - это все говорит. Спасибо. –
Привет, я могу получить довольно многословный :) – Paxic