计划为MVC类型的Android应用程序实现MVP架构。我担心如何制作一个有多个演示者的演示者 模型。
通常,演示者的构造函数如下所示:
MyPresenter(IView视图,IInteractor模型);
这样我可以轻松地在测试和模拟视图和模型时交换依赖关系。但想象一下,我的演示者与必须进行多个网络呼叫的活动相关联。例如,我有一个活动为登录进行API调用,然后另一个活动用于安全问题,然后是第三个用于GetFriendsList
的活动。所有这些电话都在同一个活动主题中。如何使用上面显示的构造函数执行此操作?或者做这种事情的最佳方法是什么?或者我只限于只使用一个模型并在该模型中调用服务?
答案 0 :(得分:3)
Presenter构造函数只需要视图。您不需要依赖于模型。定义您的演示者和类似的视图。
public interface Presenter{
void getFriendList(Model1 model);
void getFeature(Model2 model2);
public interface View{
void showFriendList(Model1 model);
void showFeature(Model2 model2)
}
}
现在你的实现类只依赖于视图部分。
休息你的方法将处理你的模型
class PresenterImpl implements Presenter{
View view;
PresenterImpl(View view){
this.view = view;
}
void getFriendList(Model1 model){
//Do your model work here
//update View
view.showFriendList(model);
}
void getFeature(Model2 model2) {
//Do your model work here
//updateView
view.showFeature(model2)
}
}