我有这个用MVC模式制作的Web应用程序,但是我正在尝试调整MVP模式。
我正在使用GWTPlatform库,我已经迁移了一些代码,主要是Presenter
和View
。但是,我没有看到任何全面的材料来解释如何实际处理Model
部分。在我的MVC模式中,我在控制器中有模型(在MVC中),并且视图监听模型中的更改以更新视图。模型由控制器更新,例如,由于打开“用户页面”而导致fireUpdateUser()
函数被触发,然后更新模型。
如果我已经拥有远程服务RPC(例如UserService,UserServiceImpl),我如何实际处理MVP中的模型;使用Gwtplatform,我可以在演示者的onReset()函数中放置一个RPC调用,然后基本上执行getView().getSomething().setValue(something)
来更新View关联的视图。在这种情况下,我根本不需要使用任何模型?此外,EventHandler和活动的目的是什么?
答案 0 :(得分: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 - &gt; Dao(模型) - &gt;查看(由演示者更新)。
看一下ebook,它会给你一些想法。
答案 1 :(得分:0)
我建议你阅读这篇文章,他们描述了GWTPlatform的基本概念,以及使用它的例子: