经过几个月的开发基于GWT的应用程序,使用MVP模式+ Hibernate,我已经到了应用程序中的每个小变化都很痛苦,并且小部件看起来非常差的点。
我也对Vaadin进行了评估,看起来非常有前景。数据绑定让我忘记DTO转换的方式看起来很有趣,但最后的结果看起来非常专业,所以我几乎确信要重做Vaadin的工作。
关键是,我非常喜欢GWT中MVP的代码清晰度,但是我还没有找到一个合理的解释,如何使它适应Vaadin,而不会抛弃已经完成的大部分工作。
我对代码适应的主要关注点是如何在Vaadin中使用GWT类,历史和事件总线。
有没有人经历过这个过程之前可以告诉我们的方式?或者,也许有理由在与Vaadin合作时不要搞砸MVP,我现在无法预见?
答案 0 :(得分:1)
感谢Jonas的回答。我已经检查了Navigator for Vaadin,但看起来是测试版 最后,我决定不坚持使用GWT MVP,并遵循Vaadin提供的模式之一。
最复杂的是将登录程序从GWT-mvp移至Vaadin,但在wiki指南的帮助下并不是那么难。
我已经在一周内完成了,我不必处理复杂的DTO转换和RPC调用,我感到非常宽慰。
答案 1 :(得分:0)
如果您使用历史记录进行关联,请参阅http://vaadin.com/addon/navigator 即使您选择不使用附加组件本身,您也可能想要查看来源 - 它们只有几百行。
答案 2 :(得分:0)
在谈论维基时,我有想法用MVP词搜索它 我找到了Building Vaadin Applications on top of Activiti页面,其中包含使用MVP架构的代码。
它使用peholmst/MVP4Vaadin项目 请注意,还有MVP and UiBinder for Vaadin Add-on
我还没有使用过这些资源......
答案 3 :(得分:0)
MVP实际上是构建Vaadin应用程序表示层的首选方式,即使是Vaadin开发团队也推荐使用。 实际上,官方Vaadin Advanced Training课程的一个主要部分是专用于模型视图演示者模式。我参加了这门课程,我发现MVP部分培训是最有用的部分。
MVP的基本概述现在甚至是Vaadin书的一部分 - Advanced Application Architectures
MVP更像是一种在GOF sense中划分表示层而不是实际设计模式的架构原则。因此,有许多不同的实现方式,每种方式都有不同的优点和缺点。应根据具体应用选择合适的实施方案。在更简单的应用程序的情况下,更好的解决方案可能根本不使用它,因为获得的好处不会超过增加的复杂性。在这种情况下,Vaadin declarative format可能是表达层划分的一个有趣的替代方案。