我即将开始开发基于CRUD RCP的中型应用程序,我打算使用MVP(模型视图展示器)模式。
我理解MVP和MVC之间的主要区别在于演示者更新视图而控制器不更新。
我真正不明白的是谁在这种模式中提到了什么。在一个教程中,我读到该视图有一个演示者实例变量(参见:http://www.logicdevelopment.net/blog/?p=16)。但是演示者还需要参考视图。不是吗?这一切都是正确的吗?
任何人都可以请求解释一个典型的MVP应用程序是如何根据谁拥有对什么的引用而构建的?
从视图中添加的代码:
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
// can we reference the presenter here? how?
}
});
使用下面提供的链接信息,我提出了下图。请注意,视图引用了演示者,反之亦然(参见here中的选项一):
答案 0 :(得分:2)
实际上,MVP有两种不同的风格。 Fowler在2004年描述了MVP模式,并且retired it in 2006将模式分为supervising conroller(sc)和Passive View(pv)。在sc中,视图绑定到模型而在pv中没有,在pv中,视图只能由演示者直接更改。
我对Does Presenter in Model-View-Presenter create views?的回答有更多细节。