【问题标题】:Real-world examples of populating a GWT CellTable using a clean MVP pattern?使用干净的 MVP 模式填充 GWT CellTable 的真实示例?
【发布时间】:2010-12-29 15:04:26
【问题描述】:

我们正在使用 GWT-Presenter 框架并尝试使用 CellTable 来组合一个可更新的网格。似乎 CellTable 的几个 GWT 构造不能轻松地将逻辑分解为干净的视图和演示者代码。

示例: 1) 在 View 的构造函数中,定义了 CellTable,每列由匿名内部类创建,这些内部类扩展了 Column 类以提供 onValue() 方法。 2) 必须实现 FieldUpdater 接口以提供当用户更改单元格中的数据时执行的逻辑。这似乎最适合 Presenter 的 onBind() 方法,但 FieldUpdaters 通常需要访问属于视图的 Cell 或 Column。 CellTable 没有获取 Columns 或 Cells 的访问器方法,因此 Presenter 获取它们的唯一方法似乎是我在 View 上创建大量成员变量,并在我的 Display 接口上创建访问器。

谁能提供在 GWT-Presenter 或类似 MVP 中处理 CellTable 的好例子

【问题讨论】:

    标签: gwt mvp


    【解决方案1】:

    我认为 GWT MVP 的主要观点是 Presenters(2.1 中的 Activity)不依赖于 View 实现,因此您可以轻松地交换模拟 Views 以便于测试。

    此外,视图可以依赖于 Presenter(= 调用 Presenter 方法),但反之则不行(当然可以,但是通过接口)。

    通常我只是在 View 中保留 Presenter 引用,以便 FieldUpdater 匿名内部类可以调用 Presenter 中的方法。您可以将此方法放在接口中,但这没有任何意义,因为给定类型的 Presenter 只有一个版本。

    或者,如果你想让事情更加解耦,那么只需让 View 发送一个 Presenter 监听的 GWT 事件。

    【讨论】:

      【解决方案2】:

      您是否试图避免将 Model 类与 View 绑定?我尝试为 cellTable 这样做,但维护代码变得令人困惑,所以我决定让 Model 类与 View 结合。您可以在创建视图时通过一些通用参数避免这种耦合..

      -Saket

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-09
        • 2015-10-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多