一、概述
MVPVM即:Model-View-Presenter-ViewModel。此模式是MVVM和MVP模式的结合体。但是交互模式发生了比较大的变化。
MVVM参考本博客文章:
iOS-MVVM-模式介绍
MVP参考本博客文章:
MVP模式介绍
二、原理:
Presenter同时持有View、Model、ViewModel,负责协调三方的之间的交互。
View持有ViewModel。ViewModel是View展示数据的一个映射,两者之间双向绑定:
(1)当View的数据发生变化时,View将数据更改同步到ViewModel。比如用户在输入框输入了内容。
(2)View监听ViewModel的数据变化,当ViewModel的数据发生变化时,View根据ViewModel的数据更新UI显示。比如更新来自后端的数据列表。
Presenter持有View,并且View的动作响应传递至Presenter。当收到View的动作响应之后,Presenter通过Model获取后端或者数据库数据,请求参数来自于Presenter持有的ViewModel。
当Model请求到数据之后,将数据返回给Presenter,Presenter将返回的数据传递至ViewModel,由于View和ViewModel之间的绑定关系,View会根据ViewModel的数据更新UI显示。
模式图如下: