11

您是否尝试过为 GWT 客户端代码使用 MVC 或任何其他 UI 模式。您在不同的方法中面临哪些陷阱/优势?

4

6 回答 6

7

我认为您需要像对待任何其他 UI 框架(如 Swing、Cocoa 等)一样对待 GWT。就 MVC(或其他范式)而言,在这些框架中有意义的所有内容在 GWT 中也有意义。我认为有时人们对 MVC 的理解太过分了,比起大多数框架,我更喜欢它在 Cocoa 中的工作方式。你创建了一个视图,你有一个 ViewController 来控制视图的所有行为,然后你有一个包含所有数据的模型对象。我认为您不需要对所有业务逻辑的位置持教条主义的态度,它只需要在有意义的地方即可。

就陷阱而言,您将遇到的主要问题是 GWT 纯粹是一种前端技术,因此从技术上讲,后端位于某处的服务器上。我不认为这与编写客户端服务器摆动应用程序有什么不同,后者将其数据存储在云中的某个地方。不同之处在于 GWT 被编译成 javascript,并且具有 javascript Web 应用程序的所有限制,所以会有一些你在前端根本无法做的事情。例如,假设您想创建一个 PDF 并向用户展示,您无法在 GWT 中执行此操作,您需要调用后端为您执行此操作。另一方面,在 Swing 应用程序中,您可能可以使用 itext 并在客户端执行此操作。

于 2009-01-05T23:37:31.903 回答
5

此问题中讨论了 GWT 的 MVC 模式,该问题也有指向此深入博客文章的链接。

我唯一要补充的是,整个客户端代码可以被认为是“MVC”中的“V”,这可能会改变你看待它的方式。将客户端代码视为它自己的嵌套 MVC 组件,嗯,它是 Java,它是面向对象的,所以它可以像 Swing 应用程序一样设计。我认为从视图中提取尽可能多的控制器代码来处理 GWT RPC 内容对您有利。模型有时更成问题,因为您可能必须决定是否要在服务器而不是客户端上使用它。或者创建一个模型代理等。

于 2009-01-05T23:17:09.997 回答
1

http://code.google.com/p/gwt-mvc/可以帮助你。

优点是:

  • 易于阅读的控制器
  • 历史代币管理
  • 控制器可通过 JMock 测试(但不是 GwtTestCase)
  • 分层 MVC
  • 简单的继承来开始编写你的视图、控制器和模型。
于 2009-03-26T15:04:27.833 回答
0

您是否尝试过 GWTruts ( http://sourceforge.net/projects/gwtruts/ )?它也是一个开源的 GWT MVC 框架,将 GWT 中的 View 和 Controller 分开

于 2009-02-17T09:02:27.513 回答
0

当 GWT 应用程序超出最小项目时,使用某种 MVC/MVP 类型模式非常重要,否则您将失去对正在发生的事情的控制。

除了已经提到的还有 GXT 的 MVC 实现,我在这里看过:http ://www.bristol-gtug.org/?p=45

去年在 Google IO 上的这个演讲让很多人开始思考 GWT 上的 MVC/MVP:http ://code.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html 。

我最近注意到 GWT 文档中现在还有一个关于 MVP 架构的教程,这是一个好的开始:http ://code.google.com/webtoolkit/doc/latest/tutorial/mvp-architecture.html

于 2010-03-04T10:21:04.747 回答
0

您可以查看 JetPad-Mappers,这是一个由 JetBrains 开发的简约 MVC 框架,并用于多个(当前未发布的)产品中。

免责声明,我参与了这个框架的开发。

于 2013-03-14T11:27:08.533 回答