我认为这是完全无法维护的
我不同意你的看法。大量的小文件比几个大文件更便于维护。我同意 GWT比Spring MVC 更冗长:
- 由于 JSP 的动态特性,您不需要所有这些接口
- Spring MVC 案例中的 JSP 不是严格类型的,它使您能够自动执行许多低级别的事情(例如数据绑定)。
- 并且根本不做一些事情(不需要在请求之间清理视图,视图是无状态的)。
在 GWT 的情况下,由于 Java 的严格性质和全状态视图,您必须做很多额外的工作。它是完全可维护的(如果操作正确的话)。主要优点是您可以为表示层添加单元测试。由于这个事实,对于具有复杂 UI、大型代码库和大型团队的长期运行项目,它将更易于维护。如果您的项目不是这种情况(屏幕很简单,并且您不打算为 UI 层添加单元测试),那么最好:
- 使用另一种更轻量级的表示技术(例如 Spring MVC)。
- 或简化您的策略(例如,允许演示者 -> 查看没有界面的交互)。通常,在这种情况下,您将失去对演示者进行单元测试的能力。正如@Andrea Boscolo 所提到的,您可以使用GwtMockito作为解决此问题的方法!
视图和演示者之间的接口的另外两个优点:
- 您可以轻松切换视图实现(关于制作桌面 UI -> 移动 UI 切换的著名案例,不幸的是我从未见过实现)
- 对我来说,这是一种有助于将演示逻辑保持在演示者中的障碍。演示者只知道必要的事情。我喜欢这个概念。这有助于我在正确的地方写出所有的作品。
所有这些文件真正令人烦恼的是,设置一项活动需要很多时间。为了简化它:
- 确保在 Eclipse 中使用 UiBinder 模板
- 更重要的是,您可以编写代码生成器,它将活动名称和包作为参数,然后它将生成所有必要的东西。所以你只需要修改 ActivityMapper 并开始编写重要的 UI 逻辑。它是为我当前的项目完成的,让我很高兴。
样板文件的另一个来源是数据绑定。考虑使用编辑器框架。