Android架构模式三:MVVM
原文地址: https://upday.github.io/blog/model-view-viewmodel/ 在开发upday应用的前六个月中,经过四次不同设计,我们学到了一个重要的教训:我们需要一个能及时相应设计变化的架构!最终我们选择的解决方案是MVVM。和我一起来探索下什么是MVVM;我们是如何在upday中应用它的以及是什么使得它对我们而言是如此完美地适合。 MVPģʽ MVVM的主要参与者是: View -向ViewModel报告用户行为 ViewModel -公开与View相关的数据流 DataModel -抽象的数据源。ViewModel与DataModel协作以获取和保存数据。 乍一看,MVVM似乎与MVP模式非常接近,因为两者在抽象View的状态和行为方面都做得非常好。MVP抽象了一个独立于特定平台用户界面的View,而MVVM则是为了简化编写事件驱动的用户界面而创建的。 如果MVP是由Presenter直接告知View显示什么,那在MVVM中,ViewModel暴露View可以绑定到的事件流。这样,ViewModel就不需要像Presenter一样再持有View的引用。这也意味着MVP模式所需的所有接口现在都被丢弃了。 View同样也会通知ViewModel不同的用户行为。MVVM模式支持View和ViewModel之间的双向数据绑定