MVC,MVP以及MVVMM模式的概述

MVC模型

MVC的定义

MVC的全名是Model View Controller,是模型-视图-控制器的缩写,用于一种业务逻辑,数据以及界面显示分离的方法代码,将所有的业务逻辑聚集在一个部件里面,在进行改进,写界面以及用户交互的同时,我们可以不再重新进行业务逻辑的编写。

MVC框架模式图

在这里插入图片描述
1.Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,表示应用程序的核心(相当于数据库);
2.View(视图)应用程序中处理数据显示的部分,换句话就是显示我们写的代码呈现出来的效果(如HTML);
3.Controller(控制器)是应用程序中处理用户交互的部分,一般负责从视图读取数据,控制用户输入,并向模型发送数据(业务逻辑)。

MVC模式的特点

MVC模式的特点在于实现关注点分离,即应用程序中的数据模型与业务和展示逻辑解耦。在客户端web开发中,就是将模型(M-数据、操作数据)、视图(V-显示数据的HTML元素)之间实现代码分离,松散耦合,使之成为一个更容易开发、维护和测试的客户端应用程序。

1.View 传送指令到 Controller ;
2.Controller 完成业务逻辑后,要求 Model 改变状态 ;
3.Model将新的数据发送到View,用户可以得到反馈

MVC流程

MVC流程一共有两种,在日常开发中都会使用到。
一种是通过 View 接受指令,传递给 Controller,然后对模型进行修改或者查找底层数据,最后把改动渲染在视图上。
另一种是通过controller接受指令,传给Controller:

MVC优点

1.耦合性低:视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码。
2.重用性高:由于已经将数据和业务规则从表示层分开,所以可以最大化的重用代码了
3.生命周期成本低:MVC使得开发和维护用户接口的技术含量降低。
4.部署快:使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
5.可维护性高:分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
6.有利于软件工程化管理

MVC缺点

不适合小型,中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
视图与控制器间过于紧密连接,视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
视图对模型数据的低效率访问,依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能
增加系统结构和实现的复杂性对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
一般高级的界面工具或构造器不支持模式改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,会造成MVC使用的困难。

MVVM模型

MVVM的定义

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。模型 是指代表真实状态内容的领域模型(面向对象),或指代表内容的数据访问层(以数据为中心)。这个模式带来了新的技术体验, 使得软件UI层更加细节化、可定制化。与此同时,在技术层面,WPF也带来了 诸如Binding(绑定)、Dependency Property(依赖属性)、Routed Events(路由事件)、Command(命令)、DataTemplate(数据模板)、ControlTemplate(控制模板)等新特性。MVVM模式其实是MV模式与WPF结合的应用方式时发展演变过来的一种新型架构模式。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

MVC框架模式图

!在这里插入图片描述
Model(模型) 处理业务逻辑的操作。
View(视图) 用于渲染数据的页面。
VModel 负责视图和数据的双向数据绑定。

MVVM优点

MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点
1.低耦合,视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的”View”上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
2.可重用性,可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
3.独立开发,开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xml代码。
4.可测试,界面向来是比较难于测试的,而现在测试可以针对ViewModel来写。

MVVM和MVM的区别

mvvm模式将Presener改名为View Model,基本上与MVP模式完全一致,唯一的区别是,它实现了View和Model的自动同步,也就是当Model的属性改变时,我们不用再自己手动操作Dom元素,来改变View的显示,而是改变属性后该属性对应View层显示会自动改变。它采用双向绑定(data-binding): View的 变动,自动反映在View Model,反之亦然。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注