MVVM与MVC

如何理解MVC与MVVM的

MVC的定义

MVC全名是Model View Controller,分别是
模型(Model):应用程序中用于处理应用程序数据逻辑的部分,通俗来讲就是负责跟数据库打交道
视图(View):处理后数据显示的部分,我们在页面所能看到的部分
控制器(Controller):处理用户交互的部分
怎么去理解这个控制器呢?在这里我们打个比方,古时候新郎M跟新娘V在结婚前是不能直接见面的,如果需要得到一些信息,这时候我们就需要媒人C来牵线搭桥。在MVC模型中,视图层跟模型是不直接交互的,下面我们引入斯坦福大学公开课上的这幅图来说明:
MVVM与MVC
MVC:假设有一个快递站,快递站只有老板一个人。某天送来了很多快递,老板的工作是把这些快递分类再送到相应的客户手中。用MVC模型来理解这个快递站的工作,老板在这模型中扮演的角色是C(控制器Controller),而那些送过来杂乱无章的快递就是M(模型Model,包括送快递过来的整个流程),客户就是V(视图层)

MVVM

接着上面的故事,MVVM又是什么。还是一个快递站,某天也送来了很多快递,但是这时候老板C雇佣了一位快递小哥VM帮他整理和发送快递,而老板只需要管理订单和支出,并不需要再管快递要送到谁的手上了。

参考地址:https://www.jianshu.com/p/b0aab1ffad93