什么是mvvm

简介: 什么是mvvm

前言

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。


提示:以下是本篇文章正文内容,下面案例可供参考


一、mvvm是什么?

MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。


二、MVVM模式的组成部分

模型


模型是指代表真实状态内容的领域模型(面向对象),或指代表内容的数据访问层(以数据为中心)。


视图


就像在MVC和MVP模式中一样,视图是用户在屏幕上看到的结构、布局和外观(UI)。


视图模型


视图模型是暴露公共属性和命令的视图的抽象。MVVM没有MVC模式的控制器,也没有MVP模式的presenter,有的是一个绑定器。在视图模型中,绑定器在视图和数据绑定器之间进行通信。


绑定器


声明性数据和命令绑定隐含在MVVM模式中。在Microsoft解决方案堆中,绑定器是一种名为XAML的标记语言。绑定器使开发人员免于被迫编写样板式逻辑来同步视图模型和视图。在微软的堆之外实现时,声明性数据绑定技术的出现是实现该模式的一个关键因素。


三、优点

1、Controller简洁清晰

ViewModel分离出来大部分的Controller代码,更加清晰和容易维护。


2、方便测试

大部分Bug来自于逻辑处理,由于ViewModel把逻辑分离出来,可对ViewModel构造单元测试。


3、开发解耦

       1. 一位开发者负责逻辑实现,另一位开发者负责UI实现


       2. 敏捷开发中,并非等后端借口提供后再开发,提供前可完成Controller和View的开发工作。


四、缺点

1、代码量比MVC多。


2、需对每个Controller实现绑定,这是分离不可避免的工作量。


相关文章
|
4月前
|
JavaScript 前端开发 设计模式
什么是MVVM
什么是MVVM
|
2月前
|
存储 前端开发 JavaScript
什么是MVVM?MVC、MVP与MVVM模式的区别?
什么是MVVM?MVC、MVP与MVVM模式的区别?
|
3月前
|
前端开发 JavaScript 架构师
什么是 MVVM?
什么是 MVVM?
22 0
|
8月前
|
前端开发 JavaScript
什么是MVVM?
MVVM,是Mode1-View-ViewModel的简写,是M/-V-VM三部分组成。它本质上就是MVC的改进版。MVVM就是将其中的View的状态和行为抽象化,其中ViewModel将视图U和业务逻辑分开,它可以取出Model的数据间时帮忙处理View中由于需要展示内容而涉及的业务逻辑
70 0
|
8月前
|
存储 前端开发 测试技术
mvvm讲解
mvvm讲解
34 0
|
8月前
|
JavaScript 前端开发
实现一个自己的MVVM(二)
实现一个自己的MVVM
36 0
|
8月前
|
JavaScript 前端开发 容器
实现一个自己的MVVM(一)
实现一个自己的MVVM
39 0
|
8月前
|
前端开发 JavaScript 数据可视化
深入理解MVVM架构模式
深入理解MVVM架构模式
478 0
|
前端开发
MVVM
前端面试
|
前端开发 JavaScript
MVVM 架构篇
MVVM 架构篇
90 0
MVVM 架构篇