本文介绍: 模型模型是指代表真实状态内容领域模型面向对象),或指代表内容数据访问层(以数据中心)。视图就像在MVC和MVP模式中一样,视图用户屏幕看到结构布局外观(UI)。视图模型视图模型暴露公共属性命令的视图的抽象。MVVM没有MVC模式控制器,也没有MVP模式presenter,有的是一个绑定器。在视图模型中,绑定器在视图和数据绑定器之间进行通信。绑定器声明数据命令绑定隐含在MVVM模式中。在Microsoft解决方案堆中,绑定器是一种名为XAML的标记语言
  1. MVC(同步通信为主):Model、View、Controller

  2. MVP(异步通信为主):Model、View、Presenter

  3. MVVM(异步通信为主):Model、View、ViewModel

mvc模式介绍

MVC(Model–View–Controller)模式是软件工程中的一种软件架构模式,它把软件系统分为三个基本部分模型(Model视图(View)控制器(Controller

(1)视图(View):负责界面显示,以及与用户交互功能例如表单网页等。

(2)控制器(Controller):可以理解一个分发器,用来决定对于视图发来的请求需要用哪一个模型来处理,以及处理完后需要跳回到哪一个视图。即用来连接视图和模型。

实际开发中,通常用控制器客户端请求数据进行封装(如将form表单发来的若干个表单字段值,封装到一个实体对象中),然后调用某一个模型来处理此请求最后转发请求(或重定向)到视图(或另一个控制器)。

(3)模型(Model):模型持有所有的数据状态程序逻辑。模型接受视图数据请求,并返回最终的处理结果

MVC模式的流程浏览器通过视图向控制器发出请求,控制器接收到请求之后通过选择模型进行处理,处理完请求以后再转发到视图,进行视图界面渲染并做出最终响应

在MVC模式中,视图View可以用JSP/HTML/CSS实现,模型Model可以用JavaBean实现,而控制器Control可以用Servlet来实现。

MVC模式的优点

 低耦合、重用性高、生命周期成本低、部署快、可维护性高、有利软件工程化管理

MVC模式的缺点

没有明确的定义、不适合小、中型应用程序、增加系统结构和实现的复杂性、视图对模型数据的低效率访问

MVVM模式的组成部分

MVVM优点

MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点

1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的”View”上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。

2. 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。

3. 独立开发开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计使用Expression Blend可以很容易设计界面生成xaml代码

4. 可测试界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。

mvp模式介绍

MVP(Model-View-Presenter)

MVP定义了Presenter和View之间接口用户对View的操作都转移到了Presenter。比如这里可以让View暴露setter接口以便Presenter调用,待Presenter通知Model更新后,Presenter调用View提供的接口更新视图。

优点

1、模型与视图完全分离我们可以修改视图而不影响模型

2、可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部

3、我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁。

4、如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口测试这些逻辑(单元测试

缺点

由于对视图的渲染放在了Presenter中,所以视图和Presenter的交互会过于频繁。还有一点需要明白,如果Presenter过多地渲染了视图,往往会使得它与特定的视图的联系过于紧密。一旦视图需要变更,那么Presenter也需要变更了。比如说,原本用来呈现Html的Presenter现在也需要用于呈现pdf了,那么视图很有可能也需要变更。

原文地址:https://blog.csdn.net/qq_73735007/article/details/134711420

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_35734.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

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