我正在转换我的应用程序以使用MVP模式。关于正确使用MVP的开发人员之间存在争议,特别是在Android生命周期和UI相关逻辑的位置。没有争论应该在演示者和网络中完成任何硬逻辑
如果我需要为生命周期功能,onresume,onPause等做任何事情,我应该......
或
我将其视为onResume是一个事件。所有事件都应由演示者处理。反驳的论点是,我们不想编写“ping pongs”的代码,I.E。 OnResume - >演示者 - >一行函数,显示一个微调器(或接近该效果的东西)
现在多一点颗粒。 让我说我开始我的活动,我需要显示错误或数据,具体取决于数据是否为空。
我可以做..
(presenter)
contract.setupUi(data);
然后
(view)
setupUi(Object data){
if(data != null){
//show data
}
else{
//show error
}
UI控制着从演示者那里唤起的状态。
或者我能做到
(presenter)
if(data != null){
contract.showUI(data);
}
else{
contract.showError();
}
合同中有所有州。
是否全部目标是让Presenter完全控制应用程序的所有内容并将视图视为完全愚蠢。或者它只是为了测试目的而将代码分开。或者两者兼而有之?
回顾
答案 0 :(得分:1)
非常好的问题,但不幸的是,他们没有明确的答案。
归结为MVP(或任何其他MVx)不是特定的实现,而是高级架构模式,需要解释。
说,我回答你的问题:
再次 - 以上答案是恕我直言。
您可能也对我撰写的这一系列帖子感兴趣:MVP and MVC Architectures in Android