资讯专栏INFORMATION COLUMN

MVC / MVP / MVVM

spacewander / 732人阅读

摘要:同时,在技术层面,也带来了诸如等新特性。接收用户交互请求将请求转交给操作数据更新更新完数据,通知数据发生变化更新数据低耦合。开发人员可以专注于业务逻辑和数据的开发,设计人员可以专注于页面设计,生成代码。

MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

View 接受用户交互请求 View 将请求转交给Controller Controller 操作Model进行数据更新数据更新之后,Model通知View更新 数据变化 View 更新变化数据

在MVC模型里,Model不依赖于View, 但是 View是依赖于Model的。不仅如此, 因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的, 至少那些业务逻辑是无法重用的

MVP

MVP的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。

View 接收用户交互请求 View 将请求转交给 Presenter Presenter 操作Model进行数据更新 Model通知Presenter数据发生变化 Presenter 更新View数据

Model与View完全分离,修改互不影响 更高效地使用,因为所有的逻辑交互都 发生在一个地方—Presenter内部一个Preseter可用于多个View,而不需要改 变Presenter的逻辑(因为View的变化总 是比Model的变化频繁)。更便于测试。把逻辑放在Presenter中,就可以脱离用 户接口来测试逻辑(单元测试)

MVVM

MVVM是Model-View-ViewModel的简写。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

View 接收用户交互请求 View 将请求转交给ViewModel ViewModel 操作Model数据更新 Model更新完数据, 通知ViewModel数据发生变化 ViewModel 更新View数据

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

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

独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,生成xml代码。

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98930.html

相关文章

  • MVCMVPMVVM 模式如何选择?

    摘要:如何同步的变更。在没有环境下对进行单元测试的时候,业务逻辑的正确性是无法验证的更新的时候,无法对的更新操作进行断言。对是通过接口进行,在对进行不依赖环境的单元测试的时候。这里根据上面的例子给出了的单元测试样例。 前言 做客户端开发、前端开发对MVC、MVP、MVVM这些名词不了解也应该大致听过,都是为了解决图形界面应用程序复杂性管理问题而产生的应用架构模式。 网上很多文章关于这方面的讨...

    Worktile 评论0 收藏0
  • MVCMVPMVVM 对比笔记

    摘要:模型与视图解耦,编写单元测试更方便。切实的将模型绑定到了视图,这一责任在中被控制器提前持有了。视图和视图模型使用数据绑定和事件进行通信。触发器数据触发器允许我们进一步在视图状态变化后改变我们的对象属性。 MVC、MVP 和 MVVM 三个非常重要的架构模式 MVC (Model(模型)-View(视图)-Controller(控制器)) MVP (Model(模型)-View(视图)...

    paney129 评论0 收藏0
  • MVC,MVP,MVVM浅析

    摘要:的模式之间不同主要是与的数据传递的流程不同。所以无论是复杂化简单化还是修改流程,基本都是因为技术栈变化了对应做的调整。实例实际项目往往采用更灵活的方式,以为例。用户可以向发送指令事件,再由直接要求改变状态。与不发生联系,都通过传递。 概述 M -V- X 本质都是一样的 重点还是在于M-V 的桥梁要靠 X来牵线。 X的模式之间不同 主要是 M与V 的数据传递的流程不同。数据传递的流程不...

    Vultr 评论0 收藏0
  • MVC MVP MVVM

    摘要:,的事件回调函数中调用的操作方法。以为例调用关系模式实际就是将中的改名为,调用过程基本一致,最大的改良是间的双向绑定。和间,有一个对象,可以操作修改,使用。 参考:MVC,MVP 和 MVVM 的图示 - 阮一峰http://www.ruanyifeng.com/blo...Web开发的MVVM模式http://www.cnblogs.com/dxy198...界面之下:还原真实的MV...

    wushuiyong 评论0 收藏0

发表评论

0条评论

spacewander

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<