Model view controller 在MVC架构中,用户输入来自哪里?

Model view controller 在MVC架构中,用户输入来自哪里?,model-view-controller,user-input,Model View Controller,User Input,我想知道控制器从哪里获得用户输入(为模型提供)。因为输入媒体与用户密切相关,视图不应该知道获取用户数据的具体方式吗?但是我怎样才能将控制器从视图中分离出来呢?有没有可能像它们的目的所暗示的那样使两者完全独立 示例: 当我有一个应用程序使用curses库作为视图时,这意味着它只能通过终端访问。使用curses方法读取控制器中的用户数据会破坏封装,但在视图上调用方法与显示模型无关。在MVC中,控制器从视图获取其用户输入。考虑让视图和控制器通过。控制器将自己注册为视图的观察者。当用户向视图中输入数据并

我想知道控制器从哪里获得用户输入(为模型提供)。因为输入媒体与用户密切相关,视图不应该知道获取用户数据的具体方式吗?但是我怎样才能将控制器从视图中分离出来呢?有没有可能像它们的目的所暗示的那样使两者完全独立

示例:
当我有一个应用程序使用curses库作为视图时,这意味着它只能通过终端访问。使用curses方法读取控制器中的用户数据会破坏封装,但在视图上调用方法与显示模型无关。

在MVC中,控制器从视图获取其用户输入。

考虑让视图和控制器通过。控制器将自己注册为视图的观察者。当用户向视图中输入数据并按Enter键时,视图将解释数据并通知其观察者有可用数据。然后,控制器可以通过公共方法从视图中获取数据。

我认为视图应该在控制器上有一个回调来发送用户输入。在web体系结构中,回调是通过http请求将用户输入发送回服务器的能力提供的


在您的例子中,您的ncurse前端可能应该有某种回调方法发送回控制器组件以返回用户输入。

我认为视图实际上与输入数据没有多大关系。我发现,如果您将用户视为直接与控制器通信,那么MVC更容易可视化。控制器接收来自用户的数据并将视图发送回。在许多系统中,视图引擎有一些有限的自我更新方式(即文本输入在发送到控制器之前显示键入的内容)。但是对于任何MVC类型的体系结构,您可以用任何其他视图替换任何视图,只要它们都能够处理相同的数据

比如说。可以在任何支持输入字符串的系统上输入用户名。控制器接受字符串,因此可以在web应用程序、终端应用程序或GUI应用程序中使用。

我会尽量对你说得更具体一些。给出你能看到的模糊/抽象的ppl答案,并不能掌握主题,也无助于解决问题

MVC->模型视图控制器

有很多MVC的实现,我不知道你的情况,但我会给你一个

最常见的MVC实现是这样的

视图控制器模型

在web场景中

视图将是您的HTML页面,数据输入将以表单的形式进行

<form action=/home/createuser method=post>
...code goes here...
</form>

此表单将数据作为参数提交到方法中。Createuser将处理它们以与模型对话,然后在这种情况下保留数据。

例如,如果View1有按钮1,而View2没有,该怎么办?控制器应该如何从两个视图中获取其输入(单击按钮1)?
public class Home extends Controller {

   public void createUser(Userform f){
      ...create user...
   }
}