Gwt 整合共享包和客户端包

Gwt 整合共享包和客户端包,gwt,Gwt,我只是玩了一下Eclipse生成的GWT示例项目,并意识到您可以将所有类从客户机包移动到共享包,它可以像以前一样工作。我希望在我的项目中使用按功能包策略,而不是按层包策略。我的想法是将一个域类及其UI类放在一个共享包中 这种方法有任何副作用或缺点吗?没有副作用。使用适合您需要的项目结构。请记住考虑更长期的代码维护,特别是如果其他开发人员可以稍后接管您的代码。< P>按GWT项目结构共享包被用来共享客户端和服务器端使用的类。 现在,您不想向服务器公开表示逻辑,如果这样做了,仍然没有意义 大多数数据

我只是玩了一下Eclipse生成的GWT示例项目,并意识到您可以将所有类从客户机包移动到共享包,它可以像以前一样工作。我希望在我的项目中使用按功能包策略,而不是按层包策略。我的想法是将一个域类及其UI类放在一个共享包中


这种方法有任何副作用或缺点吗?

没有副作用。使用适合您需要的项目结构。请记住考虑更长期的代码维护,特别是如果其他开发人员可以稍后接管您的代码。

< P>按GWT项目结构共享包被用来共享客户端和服务器端使用的类。 现在,您不想向服务器公开表示逻辑,如果这样做了,仍然没有意义

大多数数据传输对象、POJO和实用程序类都属于共享包。我已经发布了它,这将帮助你更好地理解它

阅读更多

副作用: 您正在混合web应用程序的不同层。您正在远离模式,并试图重现相同的问题,这就是为什么专家在经过大量经验后发现此设计模式的原因


根据我的经验,值得一读

,域类通常由多个功能使用。例如,可以在购物车功能和销售分析功能中使用Customer类。我不会将域类限制在特定的功能上。术语挑剔:client/shared/server不是“按层打包”,而是“按兼容性打包”。从理论上讲,shared中的任何类都可以在浏览器或JVM中运行,但对于client或server中的类,情况并非如此。尝试在服务器上运行客户端类将导致链接错误,尝试在客户端上运行服务器类将导致编译器错误。@Andy域类仍然是公共的,可由不同的功能使用。我将尝试按功能打包,看看是否有一些简单的约定使其保持可维护性。如果是这样,我希望有更干净、更模块化的代码。无论如何,GWT的表示逻辑都会在开发期间暴露给服务器。因此,您只需要知道不要使用客户机包中的类。使用我的方法,您必须知道不应该访问每个功能包中的某个ui类。我认为这很容易,因为服务器根本不处理表示。关注点的分离更多的是在类级别而不是包级别。我不认为这违反了MVC。您只需要将MVC机制放在一个包中,而不是放在多个包中。我想构建一个系统,其中包是插件,您可以随意进出。除此之外,按功能打包还有很多优点:好的,那就继续吧。只整合共享包和客户端包不会有任何问题。