使用MVP模式设计基于RCP的应用程序

时间:2011-11-23 18:53:41

标签: design-patterns eclipse-rcp mvp rcp

我即将开始开发基于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中的选项一):

passive view diagram

1 个答案:

答案 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?的回答有更多细节。