Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MVC-控制器与模型责任_Java_Swing_Model View Controller - Fatal编程技术网

Java MVC-控制器与模型责任

Java MVC-控制器与模型责任,java,swing,model-view-controller,Java,Swing,Model View Controller,我正在使用gui控制台进行文本冒险。我现在已经设置好了,这样用户就可以使用视图(例如“检查键”、“环顾四周”等)输入文本,然后使用侦听器将这些数据从视图发送到控制器。一旦文本发送到控制器,我就有点卡住了。遵循MVC模型,我应该将文本从控制器发送到模型,让模型解析它并找出如何处理它,还是该模型只是一种“存储”,控制器在其中解析数据,并告诉模型基本命令?例如,如果“拾音器钥匙”被发送到控制器,控制器是应该告诉模型只需将钥匙添加到玩家清单中并将其从房间中移除,还是应该将整个文本发送到模型以进行处理 我

我正在使用gui控制台进行文本冒险。我现在已经设置好了,这样用户就可以使用视图(例如“检查键”、“环顾四周”等)输入文本,然后使用侦听器将这些数据从视图发送到控制器。一旦文本发送到控制器,我就有点卡住了。遵循MVC模型,我应该将文本从控制器发送到模型,让模型解析它并找出如何处理它,还是该模型只是一种“存储”,控制器在其中解析数据,并告诉模型基本命令?例如,如果“拾音器钥匙”被发送到控制器,控制器是应该告诉模型只需将钥匙添加到玩家清单中并将其从房间中移除,还是应该将整个文本发送到模型以进行处理


我知道这是一个非常基本的MVC问题,我只是对MVC的每个部分的具体角色有点困惑,即使在阅读了很多关于它的内容并查看了一些解释模型的流程图之后。

模型是持久存储,即数据库。 控制器处理从用户到模型的信息
视图向用户显示模型中的信息,并接受用户的输入。

有很多方法可以回答这个问题。 这个答案可能不合标准,这只是我的理解

我认为应该创建一个模型来表示实体和操作。然后将有一个控制器或调用为请求处理程序,它接受请求和数据,然后决定从模型中使用什么操作来成功处理请求


由于数据管理是模型的责任,因此您可以使用另一层来处理存储,并将其与模型一起使用,或者在模型本身中处理存储。

模型应该具有程序的大脑。试着想想,如果这个程序是一个基于文本的游戏,一个Swing GUI,一个智能手机游戏,一个基于互联网的游戏,它会有什么不变性。在所有这些情况下保持不变的可能是在模型中。@HovercraftFullOfEels所以控制器只是在模型和视图之间传递数据,而从未实际接触数据?它只是介于两者之间的一层,允许对每一个单独进行测试和/或使扩展更容易?这取决于,有时模型不能做所有的事情,例如,如果一个动作依赖于一个旧动作,我相信集体动作不可能有所有的逻辑,或者,如果一个动作依赖于另一个玩家在网络上抛出的动作:网络代码将不在模型中。@HoverCraftFullOfels是正确的;正如前面所讨论的,Swing MVC是以模型为中心的。模型不一定是持久的。我应该先对元素进行一个非常基本的描述。的确,模型不必是持久的,我也没有包含任何关于视图模型的内容。在开始“回答”问题之前,只需对MVCPlese的各个部分进行基本的解释,了解有关主题的知识。