首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MVP模式

使用MVP模式
EN

Stack Overflow用户
提问于 2012-04-15 00:32:34
回答 2查看 785关注 0票数 4

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

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-15 14:23:01

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

代码语言:javascript
复制
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;
    }
}

在你的服务中

代码语言:javascript
复制
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 (模型) -> View (由presenter更新)。

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

票数 3
EN

Stack Overflow用户

发布于 2012-04-16 15:07:13

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

  • GWTPlatform Getting Started
  • Other getting Started
  • Blog about GWTP
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10155289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档