您是否尝试过将MVC或任何其他UI模式用于GWT客户端代码.您在不同方法中遇到的缺陷/优势是什么?
我认为你需要像任何其他UI框架一样对待GWT,比如Swing,Cocoa等.在MVC(或其他范例)方面,那些在那些框架中有意义的东西在GWT中也是有意义的.我认为有时人们把MVC的东西放得太远了,我喜欢它在Cocoa中的工作方式比大多数框架更多.您创建一个视图,您有一个ViewController控制视图的所有行为,然后您拥有包含所有数据的模型对象.我认为你不需要教你所有的业务逻辑在哪里,它只需要在有意义的地方.
在陷阱方面,您将遇到的主要问题是GWT纯粹是一种前端技术,因此从技术上讲,后端位于某个服务器上.我不认为这与编写客户端服务器swing应用程序有什么不同,它将数据存储在某个地方的云中.不同之处在于GWT被编译成javascript,并且具有javascript web应用程序的所有限制,因此会有一些你根本无法在前端做的事情.比如说你想要创建一个PDF并向用户显示,你不能在GWT中这样做,你需要调用后端来为你做.另一方面,在Swing应用程序中,您可以使用itext并在客户端执行此操作.
在这个问题中讨论了GWT的MVC模式,该问题还链接到这篇深入的博客文章.
我唯一要补充的是,整个客户端代码可以被认为是"MVC"中的"V",这可能会改变你看待它的方式.将客户端代码视为自己的嵌套MVC组件,它是Java,它是面向对象的,所以它可以像Swing应用程序一样设计.我认为将尽可能多的Controller代码从View中拉出以处理GWT RPC的东西对你有利.模型有时会出现问题,因为您可能需要在服务器而不是客户端上决定是否需要它.或者创建模型代理等.