首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >围绕整个GWT MVP与活动和地点的混乱

围绕整个GWT MVP与活动和地点的混乱
EN

Stack Overflow用户
提问于 2011-06-14 13:33:39
回答 5查看 7.3K关注 0票数 21

在阅读了一段时间并观看了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/

我真的很困惑。我想要一个一站式的线程来结束所有的混乱。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-14 18:41:47

MVP;DR:地点和活动与无关。

Places就是导航到你的应用程序:你从一个地方转到另一个地方。活动建立在帮助绑定“你看到的”和“你所在的地方”的地方之上:

  • 当我在SO的主页上时,主要部分显示所有主题中的问题列表,右侧顶部显示我最喜欢的标签并帮助我设置标签筛选器,然后是添加,添加下面是最近的标签列表,然后是最近的徽章列表。
  • 在此问题页面上,主要部分显示问题及其答案,右侧的顶部替换为问题标记上的信息,然后是添加、链接的问题和相关问题。

这些“部分”(区域)中的每一个都由监听PlaceChangeEvent并询问其相关联的ActivityMapper在该区域中显示哪个ActivityPlaceChangeEvent来管理。

这一切都与导航有关。

这和MVP没有关系(不管官方文档怎么说)。但是,如果你使用MVP,你很可能会让你的活动成为“展示者”,控制一个“视图”(活动将传递回在其start方法的参数中接收到的AcceptsOneWidget )。然而,这不是一条规则,例如,在mobilewebapp示例中,谷歌是experimenting,具有分离的活动和展示者。

票数 21
EN

Stack Overflow用户

发布于 2013-03-08 20:57:16

MVPModelViewPresenter的缩写,它是一种编码模式。它只是从MVC (Model视图控制器)模式演变而来的。参见MVC wikipedia page

MVP和MVC的不同之处在于,在MVP中,模型和视图是互不认识的。在MVP中,你的视图应该尽可能的愚蠢。所有的交互都由演示者处理。这只是一种正确组织代码的方法。

有些人已经创建了框架来减少以这种方式组织代码所需的工作量。看看不同的MVPimplementations。在网上很容易找到它们。

MVP使您的代码更易于测试,因为您可以轻松地将视图替换为将伪造行为或视图的其他实现(通常是Mock)。因此,您不需要在浏览器环境中运行测试(GWT视图是HTML视图)。因此,您的测试将运行得更快。

Google文档中写道:

活动和位置框架允许您在应用程序中创建可加书签的URL。

因此,活动和地点不仅仅是一个MVP框架。然而,ActivityPresenter

代码语言:javascript
复制
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

票数 9
EN

Stack Overflow用户

发布于 2011-06-14 14:25:26

活动是演示者。地点只是历史记号的包装器。

这种困惑始于Google IO视频,其中引入了MVP GWT概念,但没有给出实现。因此,人们开始推出自己的产品。然后google编写了2.1文档,其中详细介绍了概念,并且只提供了一些示例代码供下载。后来在2.2中,他们介绍了他们的完整实现,活动等。

因此,如果你想走MVP路线,你需要选择你的实现。Activites可能是最好的,因为它是官方的。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6339488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档