mvc和mvvm的区别

文章参考星球小霸王,仅仅作为我自己学习知识的记录。   

    最近面试了几家公司,都被问到了mvvm,所以我从网上找了一些文章看了看,对比一下mvc和mvvm的一些区别

1.MVC:Model(模型):是应用程序中用于处理应用程序数据逻辑的部分。

    通常模型对象负责在数据库中存取数据。

比如我们人类有一双手,一双眼睛,一个脑袋,没有尾巴,这就是模型,Model定义了这个模块的数据模型。

在代码中体现为数据管理者,Model负责对数据进行获取及存放。

数据不可能凭空生成的,要么是从服务器上面获取到的数据,要么是本地数据库中的数据,

也有可能是用户在UI上填写的表单即将上传到服务器上面存放,所以需要有数据来源。

既然Model是数据管理者,则自然由它来负责获取数据。

Controller不需要关心Model是如何拿到数据的,只管调用就行了。

数据存放的地方是在Model,而使用数据的地方是在Controller,

所以Model应该提供接口供controller访问其存放的数据(通常通过.h里面的只读属性)

View(视图):是应用程序中处理数据显示的部分。

    通常视图是依据模型数据创建的。

View,视图,简单来说,就是我们在界面上看见的一切。

它们有一部分是我们UI定死的,也就是不会根据数据来更新显示的,

比如一些Logo图片啊,这里有个按钮啊,那里有个输入框啊,一些显示特定内容的label啊等等;

有一部分是会根据数据来显示内容的,比如tableView来显示好友列表啊,

这个tableView的显示内容肯定是根据数据来显示的。

我们使用MVC解决问题的时候,通常是解决这些根据数据来显示内容的视图。

Controller(控制器):是应用程序中处理用户交互的部分。

    通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

Controller是MVC中的数据和视图的协调者,也就是在Controller里面把Model的数据赋值给View来显示

(或者是View接收用户输入的数据然后由Controller把这些数据传给Model来保存到本地或者上传到

服务器)。

MVC规范示例图:

mvc

MVC是单向通信。也就是View跟Model,必须通过Controller来承上启下。


2.MVVM:

    Model - 模型、数据

    View - 视图、模板(视图和模型是分离的)

    ViewModel - 连接 Model 和 View

MVVM

MVVM详解参考:前端面试之MVVM浅析 | Poetry's Blog

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容