繁体   English   中英

MVP模式(GWT)的优势是什么

[英]What is the advantage of the MVP pattern (GWT)

我刚看完这篇文章 ,确实让我很困惑。

其次,这个模型允许我们最小化GWTTestCase的使用,GWTTestCase依赖于浏览器的存在,并且对于我们的大部分代码,编写轻量级(和快速)JRE测试(不需要浏览器)。 [1]

这是整个好处,我是否遵循这种设计模式? 它似乎使代码更复杂......你使用这种模式吗?

我不同意,MVP使代码方式不那么复杂,尤其是在GWT的情况下。 如果您计划中型到大型GWT项目,那么MVP架构是您的主要选择。 我建议看看GWT MVP(谷歌)和gwt-platform(KennethJ建议)。 还有其他实现。

MVP的主要好处(我的意思是MVP模式 - 不仅仅是GWT MVP):

  • 明确分离GWT UI和业务逻辑; 所有客户端Java代码都变得非常通用,对GWT实现的依赖性最小(主要通过接口)。 这有助于测试,但它本身就是UI设计的宝贵好处。
  • 由于几乎不依赖于业务逻辑,UI的可维护性增加
  • 由于GWT依赖性有限,增加了客户端和服务器之间共享代码的数量

您可能采用的其他补充技术:

  • gwt-gin(Google Guice的客户端实现):gwtp几乎需要它(或者需要 - 我从来没有试过没有它)
  • Guice(服务器端)与客户端代码保持一致,但在技术上不是必需的
  • 测试模拟框架(例如mockito)总是方便MVP
  • GWT UIBinder - 除非您在UI设计中非常动态
  • GWT EventBus - 异步环境中客户端通信的主要方法,如AJAX / JavaScript
  • GWT-RPC通过命令模式(gwtp dispatcher和/或RequestFactory)

不使用GWTTestCase的事实非常棒,特别是如果你进行测试驱动开发,但还有topchef提到的其他好处。 这取决于你使用的MVP“版本”。 当我看到人们将Presenter注册为从视图中暴露的小部件的监听器时,我感到畏缩。

一般来说围绕MVP的问题之一是有几种口味,并且对模式不熟悉的人会感到困惑,因为每种口味都有不同的优点和缺点。 你可以看看这两篇文章来帮助决定它是否适合你,并获得有关MVP的更多细节(以及你可能会混淆的其他内容): GWT MVP模式GWT MVP,活动和地点混乱

相比什么优势? 如果你的意思是与标准MVC模式(UI开发的常见模式)相比具有优势,那么是的,我猜这是这种模式的主要原因

GWTTestCases比标准junit测试慢得多且麻烦。 您希望使用标准Java测试框架测试逻辑,并使用GWTTestCase仅测试UI特定逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM