Model view controller 在MVC中,在视图中处理数据可以吗?

Model view controller 在MVC中,在视图中处理数据可以吗?,model-view-controller,Model View Controller,我当前在视图中有一个方法,该方法根据用户输入创建一个对象,并将其返回给控制器,在控制器中调用: //In view class myObject x = new myObject(); x.setAttribute1(TextField1.getText()); x.setAttribute3(TextField2.getText()); x.setAttribute3(TextField3.getText()); return x; 这是否违反了MVC的条款?在控制器中创建对象并在视图中使

我当前在视图中有一个方法,该方法根据用户输入创建一个对象,并将其返回给控制器,在控制器中调用:

//In view class

myObject x = new myObject();
x.setAttribute1(TextField1.getText());
x.setAttribute3(TextField2.getText());
x.setAttribute3(TextField3.getText());
return x;
这是否违反了MVC的条款?在控制器中创建对象并在视图中使用getter方法设置其属性是否更合适:

//In controller class

myObject x = new myObject();
x.setAttribute1(myView.getTextField1().getText());
x.setAttribute2(myView.getTextField2().getText());
x.setAttribute3(myView.getTextField3().getText());
...
是的,这是错误的

主要问题是在视图中创建模型,这是绝对不可能的。控制器创建模型,模型可以创建关联模型,但视图绝对不会

视图显示模型。他们就是这么做的,不多不少。视图也不会将用户输入写入模型,它们以任何格式将用户输入返回给控制器,控制器决定执行什么操作


如果您使用的是更经典的基于表单的GUI,即不是web应用程序,那么视图仍然不会直接操作模型。改用观察者模式来解耦

我认为把“生成”代码放在视图中是不对的。也许建设者课程能帮你更多