java - 使用 MVP 模式

标签 java gwt mvp gwt-platform

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

我正在使用 GWTPlatform 库,我已经迁移了一些代码,主要是 PresenterView。然而,我还没有看到任何全面的 Material 来解释如何实际处理 Model 部分。在我的 MVC 模式中,我在 Controller (在 MVC 中)中有模型,并且 View 监听模型中的更改以更新 View 。模型由 Controller 更新,例如,fireUpdateUser() 函数作为打开“用户页面”的结果被触发,然后更新模型。

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

最佳答案

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

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更新)。

看看那个ebook , 它会给你一些想法。

关于java - 使用 MVP 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10155289/

相关文章:

java - 如何在不使用 Java 将图像加载到内存的情况下裁剪图像

datetime - GWT 中日期处理的 "wrong"是什么的详细解释

java - 如何获取地理位置详细信息位置错误原因

ASP.NET MVP - 利用用户控件

android - Mosby MVP - 如何在 onDestroyView() 之后重新创建 Fragment 的状态?

GWT MVP 在地点更改时更新事件状态

java - 需要对这种通用类型进行简要描述

java - 如何在java中将网页的Html源转换为org.w3c.dom.Document?

java - 冰脸旋转监听器?

java - 如何使用 AutoBean 实现不同基类型的列表,如 String、Integer 等?