在http://www.vainolo.com/tutorials/的教程中,模型的位置保存在模型中。我想在加载文件时将所有数据保存到文件并获得相同的视图。
在寻找这个问题的答案时,我得到了另一个更重要的问题:
GEF 真的是 MVC 框架吗?
GEF Controllers告诉 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 是控制器,因此它们必须侦听其模型以根据模型的新状态更新视图。
那么什么是正确的呢?
为防止交叉发布,请查看http://www.eclipse.org/forums/index.php/m/755178/。