一、MVC模式
- View在Controller的顶部,Model在Controller的底部;
- Controller需要关注View与Model,定义它们之间的接口;
- Model定义了业务逻辑,并在数据更新之后通知View;
二、MVVM模式
- ViewModel代替了Controller,在View之下,用于将Model的数据映射到View中;
- View接受ViewModel,ViewModel接收Model的数据
三、总结
- ViewModel其实是将原来写在视图或控制器里关于展示的逻辑分离出来;
- ViewModel负责暴露数据对象给View,此时,ViewModel更像一个Model而非View;
- MVVM模式是双向绑定的;通过Binder去同步View和ViewModel的数据;
如有错误,望指出!
参考:
https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel#cite_note-JoshSmith-3
https://zhuanlan.zhihu.com/p/20715071