【发布时间】:2012-03-15 23:23:54
【问题描述】:
我正在寻找有关 GWT 架构的指导 - 何时使用自包含小部件与 MVP/Activity/Places。
背景
阅读了 Google 文档并搜索了 Stackoverflow,gwt-examples 项目为这个问题提供了最好的说明:http://code.google.com/p/gwt-examples/source/browse/trunk_2012/DemoGwtEditor/src/com/gonevertical/client/?r=3138#client%2Fviews
一个应用程序被划分为强解耦视图,每个视图对应一个 DOM 对等体。活动和地点用于管理给定视图的逻辑/RPC 和导航。虽然不精确,但为了简洁起见,我将这种模式称为 MVP。
小部件不符合此模式,包含视图和逻辑/RPC 调用。
上下文
对于这个问题的上下文,我正在考虑一个复杂的 GWT 应用程序,它使用 TabLayoutPanel 创建单独的“屏幕”。每个选项卡/屏幕都广泛地与用户活动相关。 Mint.com 就是这种界面的一个很好的例子:仪表板选项卡、交易选项卡、预算选项卡、趋势选项卡等。每个选项卡都由许多子组件构建而成:图表带有选择器、报告选择器、事务表等。
像事务表这样的子组件可能是多个 GWT 原生组件的组合 - 例如。一张有几个按钮的桌子。 Google doco 将这种子组件显示为被分解为 MVP。
假设 - 小部件与 MVP
用 MVP 处理子组件意味着:
- 每个选项卡的非常大的视图和活动/演示者类或
- 嵌套 MVP 和文件爆炸(每个子组件 5 个)
另一方面,作为小部件的子组件意味着:
- 非常轻量级的 MVP 结构,仅用于管理导航历史 标签;不值得
- 没有解耦(单元测试和切换很困难 视图)
问题
- 这些假设是否正确?
- 何时在解耦视图/MVP 上使用自定义复合小部件(反之亦然)?
【问题讨论】:
标签: gwt