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

时间:2011-03-06 16:50:34

标签: design-patterns gwt mvp gwt-mvp

我刚读过this article,这确实让我很困惑。

  

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

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

3 个答案:

答案 0 :(得分:8)

我不同意,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)

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

围绕MVP的一个问题一般是有几种口味,而且这种模式的新手会混淆,因为每种口味都有不同的优点和缺点。您可以查看这两篇文章,以帮助决定它是否适合您,并获得有关MVP的更多详细信息(以及您可能会混淆的其他内容):GWT MVP PatternGWT MVP, Activities and Places Confusion