从MVC到MVVM

MVVM

特性

模型-视图-视图模型(model-view-viewmodel,MVVM),实质上是模型-视图-控制器(model-view-controller,MVC)的改进版。
其中最重要的特性是数据绑定data binding),此外还包括依赖注入、路由配置、数据模板等一些特性。

MVC

起源

MVC模式在Web 1.0时代曾被广泛应用于Web架构中,然而其诞生的时间却比Web早几年。
最初,MVC被应用于桌面程序中,在PHP、JSP等脚本语言诞生后,也逐渐成为Web开发的主流模式。

View 视图层

View视图层是用户能够看到并进行交互的客户端界面,如桌面应用的图形界面、浏览器端渲染的网页等;

Model 模型层

Model指业务模型,用于计算、校验、处理和提供数据,但不直接与用户产生交互;

Controller 控制器

Controller控制器则负责收集用户输入的数据,向相关模型请求数据并返回相应的视图来完成交互请求。


MVC模式

MVC模式实现了M和V的代码分离,M专注于数据,V专注于表达,C则在M和V之间架起了一座桥梁。
即使采用同一个Model的数据,如果调用不同的View,也会得到不同的页面呈现。

MVC优点
  • 减少了Model层的冗余代码
  • 使得Model和View更加灵活和易于维护
  • 同时也简化了项目的架构和管理。

MVVM

经过技术更迭,MVC渐渐的演变出更多的形态,有的开发者也会将其统一称作“MV*模式”,MVVM则是其中的一种。

ViewModel

MVVM架构的主要目的是分离视图(View)和模型(Model),ViewModel层封装了界面展示和操作的属性和接口。
通过数据绑定,将View和ViewModel关联在一起,当ViewModel中的数据发生变化时,View也会同步进行更新。


MVVM模式
具体实现

MVVM模式解耦了视图和模型。

  1. 在模式中,每一个View都有对应的一个ViewModel,同时ViewModel与Model建立联系。
  2. 当接收到用户请求后,ViewModel获取模型响应的数据,并通过数据绑定将相应的视图页面重新渲染。
  3. 模型层的数据只需要传入ViewModel层即可实现视图的同步更新
    从而实现了视图和模型之间的松散耦合。
MVVM灵活性

MVC是系统架构级别的,而MVVM是用于单页面上的。
因此,MVVM的灵活性要大于MVC的。

如果将这里的M抛开,只看VVM的话,那这就是一个组件的设计模式。
所以,MVVM模式也是组件化的开发的最佳实践。

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

相关阅读更多精彩内容

  • 1、MVC 从字面意思来理解,MVC 即 Modal View Controller(模型 视图 控制器),是 X...
    泥孩儿0107阅读 3,153评论 0 1
  • MVC MVC是一种设计模式,它将应用划分为3个部分:数据(模型)、展示层(视图)和用户交互层。结合一下下图,更能...
    公子世无双ss阅读 13,965评论 1 12
  • 对于绝大多数开发者来说,对于选择程序的架构,并没有太多的考虑。一方面是业务变化太快,怎么快,怎么来;另一方面,程序...
    myz7656阅读 8,407评论 5 55
  • MVC MVC 设计模式是“模型-视图-控制器”。该模式不仅定义了对象在应用程序中扮演的角色, 还定义了对象之间的...
    朴下柔阅读 4,714评论 5 1
  • 一、概述 在 iOS 开发中,MVC(Model View Controller)是构建iOS App的标准模式,...
    CoderMikeHe阅读 27,044评论 70 347

友情链接更多精彩内容