2012-02-20 51 views
0

我的程序使用MVC。当用户点击“新建文件”时,我需要检查是否编辑了前一个打开的文件(并提示用户保存,如果是的话)。Java MVC - 应该查看还是控制器提示输入?

从我所了解的情况来看,控制器应该只执行所有的验证和逻辑。那么我的控制器是否可以使用JOptionPane提示用户输入文件名,保存以前的文件等?还是应该在GUI中输入所有输入?

谢谢!

回答

1

在MVC模式中,“控制器接收用户输入并通过在模型对象上调用来启动响应”。

考虑您的问题的情况下,特别是你提到的任务:

  1. 提示用户输入文件名
  2. 文件检查是否已被修改
  3. 保存更改等

为了帮助您更好地理解,我会告诉您应该由哪个组件执行什么任务。

你的模型应该有执行2和3的逻辑。你的控制器应该调用(调用方法)你的模型,并根据返回的值调用视图上的其他功能,如使用JoptionPane和其他类似的东西提示用户输入文件名等。

因此,总而言之,您的控制器只能充当主持人,并且不会对其自己执行任何操作。您提到的所有任务都将由Model或View执行。这是你的控制器的工作,让他们了解。

祝你好运。

1

控制器在MVC架构中的角色

控制器接收请求。

控制器根据请求参数决定请求的活动。

控制器根据请求参数委托要执行的任务。

控制器委托下一个要显示的视图。

通过这个 link

会给主意,你的问题。

1

对于设计问题,很难拿出一个确切的答案,但在这种情况下,我会非常倾向于推荐你在你的视图中实现这个功能,原因是纯粹的UI你是什么在这里做的只是一组操作来获得输入,然后您将传递给您的控制器。

让我们这样说吧,你的控制器不应该关心或知道或干预你的客户端如何检索信息,它应该只处理特定的请求,控制器应该是UI不可知的,所以它的接口不应该改变if通过UI或命令行或配置获取文件名。

相关问题