关于地点和附件的文件活动MVP,我必须创建的每个页面:

>一个地方
>一项活动
>一个标记化器(我必须实现标记化逻辑)
>演示者的界面(活动实现此界面)
>视图的界面
>视图实现
>用于视图实现的ui binder xml
> app活动映射器中的节点
> gin模块中的一个节点,用于绑定视图接口以查看实现

我创建了一个具有基本功能的应用程序(5页和导航栏),我已经有超过1500行代码和~40个文件.我认为这是完全不可维护的,但是我没有找到任何解决这个问题的方法.有几个框架(例如GWTP)实现了MVP,但它们也需要相同数量的样板.

我可以使用spring mvc或play在~200行中实现相同的功能.

我做错了什么,你会如何解决?

解决方法

I think this is completely unmaintainable

我不同意你的看法.与大型文件相比,大量小文件的维护要好得多.我同意GWT比Spring MVC更冗长:

>由于JSP的动态特性,您不需要所有这些接口
> Sppring MVC中的JSP没有严格的类型,并且能够自动执行许多低级别的操作(例如数据绑定).
>并且根本不做某些事情(不需要清理请求之间的视图,视图是无状态的).

在GWT的情况下,由于Java和状态视图的严格性,您必须做很多额外的工作.它完全可以维护(如果正确完成).主要优点是您可以为表示层添加单元测试.由于这个事实,对于具有复杂UI,大型代码库和大团队的长期运行项目来说,它将更加可维护.如果您的项目不是这样(屏幕很简单,并且您不打算为UI层添加单元测试),那么最好:

>使用另一种更轻量级的表示技术(例如Spring MVC).
>或简化您的政策(例如,允许演示者 – >查看没有界面的交互).通常,在这种情况下,您无法对演示者进行单元测试.正如@Andrea Boscolo所提到的,您可以使用GwtMockito作为解决此问题的方法!

视图和演示者之间接口的另外两个优点:

>您可以轻松切换视图实现(关于制作desctop UI的着名案例 – >移动UI切换,遗憾的是我从未见过实现)
>对我来说,这是一种障碍,有助于将演示逻辑保留在演示者中.演示者只知道必要的事情.我喜欢这个概念.这有助于我在正确的地方写下所有作品.

所有这些文件的真正含义是设置一个活动需要很长时间.为了简化它:

>确保在eclipse中使用UiBinder模板
>更重要的是,您可以编写代码生成器,将活动名称和包作为参数,然后它将生成所有必要的东西.因此,您只需修改ActivityMapper并开始编写重要的UI逻辑.它完成了我目前的项目,让我很开心.

另一个样板来源是数据绑定.考虑使用编辑器框架.

java – 摆脱GWT MVP样板的更多相关文章

  1. ajax – 将spring 3 mvc与GWT集成的经验?

    鉴于:Spring3.0mvc具有优秀的REST支持,其中一个表示形式是JSON。>默认GWT的MVP体系结构只适用于客户端,并且可以很好地与JSON一起工作吗?谢谢可以分享使用Spring3.0mvc与GWT的经验吗?我们已经在GWT和SpringMVC成功构建了一个全面的大型应用程序。Spring是项目成功的关键。只有在Spring中,我们才能在服务器端单独测试一些应用程序。忽略GWT使用的默认Servlet,并创建自己的Spring控制器来处理传入的GWT-RPC请求。如果您遵循指南,GWT的MVP

  2. 用于重AJAX Java应用程序的最佳服务器端框架

    有7万个JavaWeb应用程序框架.95%是在现代AJAX/DHTML开发之前设计的,这意味着这些新方法被嫁接而不是设计.有没有任何框架从头开始构建,例如.GWT+Extjs在想?如果不是,哪个框架最适合于具有动态数量的字段和页面的形式的世界,变形客户端?

  3. ajax – 会话管理在gwt

    我正在使用GWT作为我的客户端应用程序.但是,我不知道如何处理会话管理.GWT应用程序位于一个页面上,所有服务器调用都通过AJAX完成.如果会话在服务器上过期.我们假设用户没有关闭浏览器,并使用RPC向服务器发送一些请求,我的服务器如何通知应用程序会话已过期,客户端部分应该再次显示登录屏幕?

  4. ajax – 在GWT中点击?

    我正在使用GWT构建一个AJAXWeb应用程序,我想使用右键单击各种内容,就像在桌面应用程序中一样.但是,右键单击会生成标准Web上下文菜单,并且永远不会调用voidonClick.有没有人想出如何让这个工作?pageId=425996最后,您将要禁用浏览器菜单以完全重载此类上下文菜单.除了opera之外,这应该适用于所有浏览器.但老实说,这几天新人使用了^_______^

  5. 用GWT实现基于Ajax的Web开发

    本文将结合GWTDesigner,以一个小型Web应用系统为例,对基于GWT的Web应用开发进行完整的介绍。使用GWT进行AjaxWeb应用程序开发的优势GoogleWebToolkit是Google公司推出的一款基于Java的AjaxWeb应用程序开发框架。Eclipse集成了对GWT脚本的支持,在Eclipse环境下使用GWT开发AjaxWeb应用程序,无论是代码编写、组织、测试还是调试,都能够获得较高的生产力。基于Eclipse的GWT开发环境是业界公认的,最佳的GWT开发环境。

  6. GWT入门学习与理解

    前言最近在一家公司实习,公司使用的是GWT技术进行项目的开发。因此笔者接下来会进入到GWT到初步学习中,整理一些知识点,写入博客。GWT技术简介来源:网络、《GWT入门与经典实例解析》GWT全称为GooglewebToolkit,是Google公司发布的基于Java语言开发AJAX应用的开发工具包。

  7. java – 为什么需要gwt-bootstrap?

    为什么它甚至需要gwt-bootstrap?解决方法我启动了GWT-Bootstrap,意图将引导程序JS和CSS绑定到可重用的GWT组件,否则,您可能需要复制代码,这可能会以您创建自己的代码结束,这可能与GWT非常相似–引导.它还有一些绑定事件等的工具.但是,回答你的主要问题:这取决于.如果你不信任社区和/或有很多时间,你可以做自己的gwt-bootstrap项目,但可能与你的项目集成,至少,这是我的情况发生的事情……

  8. java – 自定义ValueChangeHandler GWT

    我需要编写一个自定义ValueChangeHandler并调用onValueChange.但是我不明白如何编写ValueChangeEvent.也许我理解整个GWT事件系统是错误的.有人可以帮忙吗?

  9. java – 摆脱GWT MVP样板

    关于地点和附件的文件活动MVP,我必须创建的每个页面:>一个地方>一项活动>一个标记化器(我必须实现标记化逻辑)>演示者的界面(活动实现此界面)>视图的界面>视图实现>用于视图实现的uibinderxml>app活动映射器中的节点>gin模块中的一个节点,用于绑定视图接口以查看实现我创建了一个具有基本功能的应用程序(5页和导航栏),我已经有超过1500行代码和~40个文件.我认为这是完全不可维护的

  10. java – 任何其他GXT主题?

    默认情况下出现的GXT主题还可以,但它们基本上都是不同颜色的同一个版本.环顾四周,我找不到任何有吸引力的商业或免费主题.有没有找到新主题的好地方,或者到目前为止还没有出现第三方市场?

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部