在 android 中在视图模型中扭曲 MVP 演示者?

warp MVP presenter inside viewmodel in android?

mvp presenter 模式的缺点之一是处理 activity 状态或方向变化,而 viewmodel 可以承受方向变化,所以我可以将 presenter 包装在 viewmodel 中并仍然使用 MVP 吗?

当然,您可以让演示者驻留在 ViewModel 中以在配置更改后继续存在,并且与 ActivityFragment 的存在时间相同。

你也可以让你的演示者本身成为 ViewModel 子类,或者甚至使用 MVVM 和视图组件从 ViewModel 观察 LiveData,以自动安全在这一点上进行生命周期处理(正如最近 Google 推动的那样)。

其实MVP、MVVM、MVC都只是设计模式。 None 他们本质上解决了特定平台强加的问题。 它们旨在为开发人员提供一种机制,以便在责任分离原则下将代码结构组织成逻辑角色(参见SOLID software engineering)。

与 Android 活动(旋转只是其中之一)中的配置更改相关的状态保存问题作为 Android 操作系统的一个功能存在。 Google 为其架构组件内置了一个解决方案,我认为您指的是 ViewModel 但这并不意味着 MVVM 作为一种模式直接支持它。

如@zsmb13 所述,您可以相当干净地使用视图模型作为演示者。