Model view controller 全球环境基金真的是一个MVC框架吗?

Model view controller 全球环境基金真的是一个MVC框架吗?,model-view-controller,eclipse-emf,eclipse-gef,Model View Controller,Eclipse Emf,Eclipse Gef,在教程中,模型的位置保存在模型中。我想将所有数据保存到文件中,并希望在加载文件时获得相同的视图 为了寻找这个问题的答案,我得到了另一个更重要的问题: 全球环境基金真的是一个MVC框架吗? 告诉mvc控制器角色是从EditPart获取的。它创建指定的对象。 关于视图部分,控制器持有视图部分,但mvc模式告诉我们,控制器只对用户交互做出反应,并告诉视图,它必须更新或做任何事情。 由此得出结论,以下代码是错误的,因为它是EditPart的一部分,并且会发生更改: public void refresh

在教程中,模型的位置保存在模型中。我想将所有数据保存到文件中,并希望在加载文件时获得相同的视图

为了寻找这个问题的答案,我得到了另一个更重要的问题:
全球环境基金真的是一个MVC框架吗?

告诉mvc控制器角色是从EditPart获取的。它创建指定的对象。
关于视图部分,控制器持有视图部分,但mvc模式告诉我们,控制器只对用户交互做出反应,并告诉视图,它必须更新或做任何事情。
由此得出结论,以下代码是错误的,因为它是EditPart的一部分,并且会发生更改:

public void refreshVisuals(){
    IPersonFigure figure = (IPersonFigure)getFigure();
    Person model = (Person)getModel();
    figure.setName(model.getName());
    figure.setSurname(model.getSurname());
}
关于视图,模型上有一个观察者,因此GEF的以下句子是错误的,不是吗?
EditPart将实际模型状态与视图同步,并实现观察者

在MVC模式中,控制器必须侦听模型的更改。在GEF中,EditPart是控制器,因此它们必须侦听其模型以根据模型的新状态更新视图

那么什么是正确的呢


为了防止交叉发布,请查看。

维基百科在有关MVC的文章开头指出,“MVC有不同的风格()。有时视图可以直接读取模型并自行更新,有时这是由控制器完成的

MVC提供的主要概念是将表示与视图分离,视图不应包含任何逻辑。对模型的更改由控制器执行,而对视图的更改是在模型更改时引起的。但这并不意味着控制器不能在模型更改时更新视图。有人我个人认为直接从模型中读取视图并不是一个好的做法,因为这会使它们过于依赖,并且模型和视图应该完全分开。当您必须在模型中进行更改(例如,字段从实变为计算)时,这非常好-您不必更改视图(但您可能需要更改控制器,但这通常更容易)

希望这能帮你解决问题