4

我有这个使用 MVC 模式制作的 Web 应用程序,但是我正在尝试适应 MVP 模式。

我正在使用 GWTPlatform 库,我已经迁移了一些代码,主要是迁移PresenterView. 但是,我还没有看到任何全面的材料来解释如何实际处理该Model部分。在我的 MVC 模式中,我在控制器中有模型(在 MVC 中),视图监听模型中的更改以更新视图。模型由控制器更新,例如fireUpdateUser()由于打开“用户页面”而触发函数,然后更新模型。

如果我已经有远程服务 RPC(例如 UserService、UserServiceImpl),我如何实际处理 MVP 中的模型;使用 Gwtplatform,我可以在演示者的 onReset() 函数中放置一个 RPC 调用,然后基本上执行getView().getSomething().setValue(something)更新关联的视图。在这种情况下,我根本不需要使用任何模型?另外,EventHandler 和活动的目的是什么?

4

2 回答 2

3

在您的服务中,您可以注入DAO处理您的数据(模型)的对象。您通常有一个接口及其实现。

public interface IMyDao {
    List<String> getAllObject();
}

public class MyDao implements IMyDao {
    public List<String> getAllObject() {
        List<String> os = new ArrayList<String>();
        // DB access or Datastore (Sample code)
        os = datastore.query(...);
        return os;
    }
}

并为您服务

public class ServiceImpl implements Service {

  private final MyDao dao;

  @Inject
  public ServiceImpl(final MyDao dao) {
    this.dao = dao;
  }

  public List<String> getAllObject() {
    // Some processing
    return dao.getAllObject();
  }
}

演示者将调用您的服务。所以工作流程是 Presenter -> Dao (Model) -> View(由 Presenter 更新)。

看看那本电子书,它会给你一些想法。

于 2012-04-15T06:23:00.727 回答
0

我建议你阅读这篇文章,它们描述了 GWTPlatform 的基本概念,以及使用它的示例:

于 2012-04-16T07:07:13.257 回答