我有一个我用MVC模式制作的web应用程序,但是我正在尝试适应MVP模式。
我使用的是GWTPlatform库,我已经迁移了一些代码,主要是迁移到Presenter和View。但是,我还没有看到任何全面的材料来解释如何实际处理Model部分。在我的MVC模式中,我将模型放在控制器中(在MVC中),视图监听模型中的更改以更新视图。模型由控制器更新,例如,fireUpdateUser()函数作为打开“用户页面”的结果被触发,然后更新模型。
如果我已经有了远程服务RPC (例如UserService,UserServiceImpl),我如何在MVP中实际处理模型;使用Gwtplatform,我只需在展示者的onReset()函数中放置一个RPC调用,然后本质上做一个getView().getSomething().setValue(something)来更新相关的视图。在这种情况下,我根本不需要使用任何模型?另外,EventHandler和活动的目的是什么?
发布于 2012-04-15 14:23:01
在您的服务中,您可以注入处理数据(模型)的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 (模型) -> View (由presenter更新)。
看一下那个ebook,它会给你一些想法。
发布于 2012-04-16 15:07:13
我建议你阅读这篇文章,它们描述了GWTPlatform的基本概念,以及使用它的示例:
https://stackoverflow.com/questions/10155289
复制相似问题