我的程序使用MVC。当用户点击“新建文件”时,我需要检查是否编辑了前一个打开的文件(并提示用户保存,如果是的话)。Java MVC - 应该查看还是控制器提示输入?
从我所了解的情况来看,控制器应该只执行所有的验证和逻辑。那么我的控制器是否可以使用JOptionPane提示用户输入文件名,保存以前的文件等?还是应该在GUI中输入所有输入?
谢谢!
我的程序使用MVC。当用户点击“新建文件”时,我需要检查是否编辑了前一个打开的文件(并提示用户保存,如果是的话)。Java MVC - 应该查看还是控制器提示输入?
从我所了解的情况来看,控制器应该只执行所有的验证和逻辑。那么我的控制器是否可以使用JOptionPane提示用户输入文件名,保存以前的文件等?还是应该在GUI中输入所有输入?
谢谢!
在MVC模式中,“控制器接收用户输入并通过在模型对象上调用来启动响应”。
考虑您的问题的情况下,特别是你提到的任务:
为了帮助您更好地理解,我会告诉您应该由哪个组件执行什么任务。
你的模型应该有执行2和3的逻辑。你的控制器应该调用(调用方法)你的模型,并根据返回的值调用视图上的其他功能,如使用JoptionPane和其他类似的东西提示用户输入文件名等。
因此,总而言之,您的控制器只能充当主持人,并且不会对其自己执行任何操作。您提到的所有任务都将由Model或View执行。这是你的控制器的工作,让他们了解。
祝你好运。
对于设计问题,很难拿出一个确切的答案,但在这种情况下,我会非常倾向于推荐你在你的视图中实现这个功能,原因是纯粹的UI你是什么在这里做的只是一组操作来获得输入,然后您将传递给您的控制器。
让我们这样说吧,你的控制器不应该关心或知道或干预你的客户端如何检索信息,它应该只处理特定的请求,控制器应该是UI不可知的,所以它的接口不应该改变if通过UI或命令行或配置获取文件名。