我有这个用 MVC 模式制作的 Web 应用程序,但是我正在尝试调整 MVP 模式。
我正在使用 GWTPlatform 库,我已经迁移了一些代码,主要是 Presenter
和 View
。然而,我还没有看到任何全面的 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/