我正在编写一个Swing应用程序,根据我的之前的问题,我决定使用模型-视图-控制器模式来将用户界面与业务逻辑分离。
当我的应用程序启动时,它会执行以下代码:
即每个JDialog的内容应该代表一个独立的对象,该对象应从View中检索并在Model中更新。然而,这引出了一个问题:我是否要创建一个新的Model来表示Preferences对象以及一个新的Presenter来处理该JDialog中的事件?
对我来说,似乎在原始的View内部创建一个新的Presenter和Model会强制我做很多工作,如果我想要更改UI以使用JSF,那么这将更难移植。
请随时添加评论以进行澄清。
当我的应用程序启动时,它会执行以下代码:
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
窗口是合适的。
有一种思路让我觉得在原始的 Presenter
中编写这段代码是合适的:
public void handlePreferences() {
Preferences prefs = view.getPreferences();
model.setPreferences(prefs);
}
即每个JDialog的内容应该代表一个独立的对象,该对象应从View中检索并在Model中更新。然而,这引出了一个问题:我是否要创建一个新的Model来表示Preferences对象以及一个新的Presenter来处理该JDialog中的事件?
对我来说,似乎在原始的View内部创建一个新的Presenter和Model会强制我做很多工作,如果我想要更改UI以使用JSF,那么这将更难移植。
请随时添加评论以进行澄清。