【发布时间】:2011-11-08 17:55:21
【问题描述】:
在http://www.vainolo.com/tutorials/ 的教程中,模型的位置保存在模型中。我想将所有数据保存到文件中,并希望在加载文件时获得相同的视图。
在寻找这个问题的答案时,我得到了另一个更重要的问题:
GEF 真的是 MVC 框架吗?
GEF Controllers 告诉 mvc 控制器角色取自 EditPart。它创建指定的对象。
关于examples,控制器持有视图部分,但 mvc 模式告诉,控制器只对用户交互做出反应并告诉视图,它必须更新或其他什么。
总结以下代码是错误的,因为它是 EditPart 的一部分并且它会发生变化:
public void refreshVisuals(){
IPersonFigure figure = (IPersonFigure)getFigure();
Person model = (Person)getModel();
figure.setName(model.getName());
figure.setSurname(model.getSurname());
}
关于wikipedia 视图在模型上有一个观察者,所以 GEF 的下面这句话是错误的,不是吗?
EditPart 将实际模型状态同步到视图并实现观察者。
在 MVC 模式中,控制器必须监听模型的变化。在 GEF 中,EditPart 是控制器,因此它们必须侦听其模型以根据模型的新状态更新视图。
那么什么是正确的?
为防止交叉发布,请查看http://www.eclipse.org/forums/index.php/m/755178/。
【问题讨论】:
标签: model-view-controller eclipse-emf eclipse-gef