我正在尝试在我的应用中实现MVP模式。
但是有些任务我不确定如何以正确的方式行事 大多数示例仅涵盖基本和简单任务,其中每个交互器只执行一项任务(例如,获取用户列表) - 但是,如果任务更复杂,我们应该如何实现它
我们应该如何对待这些任务:
复杂数据任务,例如涉及3个api调用 - 获取用户+获取用户喜欢+获取用户关注者。它应该在一个交互者中完成,还是分成3个交互者?
在从演示者移动到其交互者之前,需要将数据存储在某处的任务。
例如,复杂的注册过程 - 用户输入用户名和地址,然后按继续。之后有一系列X弹出窗口,用户填充更多数据。最终 - 用户按下注册,并且演示者触发其交互者
现在,应该在整个过程中保存这个注册数据,直到进行注册调用?在主持人?在演示者的专用课程中?在.. Interactor ??
最后的想法 - 在我看到的所有示例中,交互者与其演示者之间存在1对1的关系。
如果登录演示者使用登录交互器进行... 登录 ofc。如果我需要在其他屏幕上进行另一次登录调用会发生什么(我知道它不常见,只是为了理解主要想法) - 然后我们将让另一个交互器执行与前一个相同的操作。
那么,交互者应该有一对多关系吗?
我很高兴听到你的意见
谢谢!
答案 0 :(得分:1)
您的问题的答案:
这是MVI(模型视图意图)的卖空。我强烈推荐它:
我的团队最近在一年前尝试采用MVP。我们花了很长时间才意识到一些缺点,并且有类似的问题。经过一番搜索后,我们转移到了Model-View-Intent(MVI)。它与MVP非常相似,但有一些关键差异使代码更易于管理,更容易在开发人员之间标准化代码,从而更容易跳入其他人的代码。
一些主要区别:View不与Presenter交谈,而是View发出Presenter订阅的事件,称为Intents。演示者还通过强大的视图模型与视图对话。如果你把它画出来,它最终的功能与MVVM非常相似。最终得到一个如下所示的流程:
Hannes Dorfmann在我推荐的MVI上有一些博客文章。他提供了一些相当复杂的例子。我的团队使用Kotlin,这对此很有帮助。我们并不遵循Hannes所做的一切,但我们从他的博客文章/例子中学到了很多东西,并且提炼成了对我们的团队非常有用的东西。
答案 1 :(得分:0)
@ dor506 在开始使用MVP架构之前,我有这种困惑
我不得不关注很多文章,博客和示例项目。上面这些回购是我学习MVP的蓝图
按照这个repo希望你将成为开发具有MVP架构的Android应用程序的专家