在阅读了一段时间并观看了Google IO视频之后,我仍然对MVP与活动和地点的关系感到困惑。
我发现一段时间前发布的帖子--> GWT 2.2 MVP vs. GWT 2.1 Activities-Places
MVP架构。MVP是一个概念,实现它的方法之一是位置-活动框架
我还听到“演示者类似于一项活动”
我们可以给出“没有MVP的活动和场所”
我们可以混入"Activity and Places with MVP“
"MVP只不过是我们组织项目的方式,这样我们就可以轻松地测试和组织代码。“
然后我试着找出像这样的东西--> http://code.google.com/p/gwt-platform/
我真的很困惑。我想要一个一站式的线程来结束所有的混乱。
发布于 2011-06-14 18:41:47
MVP;DR:地点和活动与无关。
Places就是导航到你的应用程序:你从一个地方转到另一个地方。活动建立在帮助绑定“你看到的”和“你所在的地方”的地方之上:
这些“部分”(区域)中的每一个都由监听PlaceChangeEvent并询问其相关联的ActivityMapper在该区域中显示哪个Activity的PlaceChangeEvent来管理。
这一切都与导航有关。
这和MVP没有关系(不管官方文档怎么说)。但是,如果你使用MVP,你很可能会让你的活动成为“展示者”,控制一个“视图”(活动将传递回在其start方法的参数中接收到的AcceptsOneWidget )。然而,这不是一条规则,例如,在mobilewebapp示例中,谷歌是experimenting,具有分离的活动和展示者。
发布于 2013-03-08 20:57:16
MVP是Model,View,Presenter的缩写,它是一种编码模式。它只是从MVC (Model,视图,控制器)模式演变而来的。参见MVC wikipedia page。
MVP和MVC的不同之处在于,在MVP中,模型和视图是互不认识的。在MVP中,你的视图应该尽可能的愚蠢。所有的交互都由演示者处理。这只是一种正确组织代码的方法。
有些人已经创建了框架来减少以这种方式组织代码所需的工作量。看看不同的MVPimplementations。在网上很容易找到它们。
MVP使您的代码更易于测试,因为您可以轻松地将视图替换为将伪造行为或视图的其他实现(通常是Mock)。因此,您不需要在浏览器环境中运行测试(GWT视图是HTML视图)。因此,您的测试将运行得更快。
Google文档中写道:
活动和位置框架允许您在应用程序中创建可加书签的URL。
因此,活动和地点不仅仅是一个MVP框架。然而,Activity是Presenter。
public interface Activity {
String mayStop();
void onCancel();
void onStop();
void start(AcceptsOneWidget panel, EventBus eventBus);
}您可以为演示者使用Activity界面,而无需使用Places、和来自谷歌的其他对象。但在这种情况下,您可能应该编写一种自己的活动管理器,它将负责启动和停止您的活动。在start和stop中,你可能想要创建你的视图,将它添加到dom,注册你的事件处理程序等等,当你停止的时候,你可能想要销毁所有这些。
在其他一些MVP实现中,您可以找到具有相同角色的bind()和unbind()方法。
来自谷歌的Activity Place实现的强大功能来自Place对象背后的所有对象,这些对象将使您的活动开始或停止,并将处理历史记录。
正如上面提到的其他人一样,Place只是您的的一个表示。
在google的Activity Place实现中涉及到许多对象。这里有一个模式可以帮助您理解。您将看到,该活动只是整个活动的一小部分。You can find some more details on my blog in this article

发布于 2011-06-14 14:25:26
活动是演示者。地点只是历史记号的包装器。
这种困惑始于Google IO视频,其中引入了MVP GWT概念,但没有给出实现。因此,人们开始推出自己的产品。然后google编写了2.1文档,其中详细介绍了概念,并且只提供了一些示例代码供下载。后来在2.2中,他们介绍了他们的完整实现,活动等。
因此,如果你想走MVP路线,你需要选择你的实现。Activites可能是最好的,因为它是官方的。
https://stackoverflow.com/questions/6339488
复制相似问题