java - GWT - 将演示者的角色与 Activity 分开

标签 java gwt mvp gwt-places gwt-activities

从 Activity 中剥离演示者的角色可以获得哪些优势?

为了将 Activity 与演示者分开,可以将哪些角色/关注点分开?

为什么要将它们分成两个不同的关注点?

在什么情况下不统一它们才有意义?

举例说明优点或缺点。

最佳答案

我可以看到将演示者与 Activity 分开的两个主要原因:可重用性和可测试性。

可重用性的真实用例:我们有一个插图实体,它具有摄影师、版权和拍摄日期等属性,可以链接到文档。的图例是关于文献与插图的关系。您可以在各自的屏幕上编辑插图和图例,但我们还希望可以在图例屏幕上编辑插图。所以我们为插图屏幕制作了一个演示器。插图 Activity 是围绕演示者的一个非常薄的包装器,而图例 Activity 有点复杂,但重用了演示者和 View 。 Activity 的责任是提供 RequestContext 并执行 fire()(保存/取消按钮在另一个 Activity 上,类似于 Google Groups 上的操作)。

可重用性的假设用例:

  • 对于不同的形式因素,您希望在同一屏幕上聚合事物或将它们分离在各自的屏幕上(例如主/细节),并且当您聚合它们时,拥有两个 Activity 可能并不理想。在手机外形中使用瘦 Activity 允许您在平板电脑或桌面外形中的单个 Activity 中重复使用组件(演示者/ View )。
  • 在不同平台上重复使用相同的演示者:您可以在 Android 应用程序和网络应用程序(甚至可能是通过 java2objc 的 iOS 应用程序)上使用相同的演示者, View 将是原生 Android View 或 GWT基于 View ,并且导航将由 Android Activity 和/或片段与 GWT Activity 和位置进行处理。

关于可测试性(这是理论上的),然后您可以在没有 Activity 生命周期(模拟 View )的情况下测试您的演示者,然后单独测试生命周期(它是否正确初始化和清理启动演示者,获取/缓存数据等。模拟演示者)。

另见 https://code.google.com/p/google-web-toolkit/source/detail?r=10185 的提交信息
Ray 的想法是让 MVP 成为小部件的实现细节,就像今天的单元格小部件使用内部展示器一样。从外面看,它们只是小部件,您可以按照自己的方式进行组合;在内部,它们使用 MVP,因此您无需 GWTTestCase 即可对其进行测试。

关于java - GWT - 将演示者的角色与 Activity 分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299466/

相关文章:

java - 如何获取 Java 小程序中的文件列表?

java - 应用程序在 if/else 执行时停止

java - GWT 意外的内部编译器错误

java - 对象列表的不良 GWT 请求工厂性能

ASP.NET MVP 作为 ASP.NET Webforms 和 ASP.NET MVC 的共生体

java - 如何在Android POST方法中与body一起使用Retrofit?

java - Spring Security 和 LDAP 身份验证

java - 无法对 CellTable 列进行排序

c# - ASP.NET MVP 注入(inject)服务依赖

java - GWT 中的 UIBinder 和 MVP