带你弄清楚MVC、MVVM、MVP的区别

作者: 倚剑闯天涯_ | 来源:发表于2019-11-07 11:28 被阅读0次

  MVC是Model-View-Controller的缩写,特点在于实现关注点分离,即应用程序中的数据模型与业务和展示逻辑解耦。它将应用程序划分为三个部分:        

Model: 模型(用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法)

View: 视图(渲染页面)

Controller: 控制器(M和V之间的连接器,用于控制应用程序的流程,及页面的业务逻辑)         

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

        


MVP是MVC改良模式,和MVC的相同之处在于:Controller/Presenter负责业务逻辑,Model管理数据,View负责显示只不过是将 Controller 改名为 Presenter,同时改变了通信方向。         

M、V、P之间双向通信。View 与 Model 不通信,都通过 Presenter 传递。Presenter完全把Model和View进行了分离。   

      


MVVM是Model-View-ViewModel的简写,主要目的是分离视图(View)和模型(Model)。                     

MVVM特点:

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

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

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

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

MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过 Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。        

MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。 唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。这样开发者就不用处理接收事件和View更新的工作,框架已经帮你做好了。

相关文章

  • iOS面试题

    1.MVC、MVP、MVVM的区别?MVC: MVVM: MVP: 2.自动布局有哪些?(1)Autolayout...

  • 带你弄清楚MVC、MVVM、MVP的区别

    MVC是Model-View-Controller的缩写,特点在于实现关注点分离,即应用程序中的数据模型与业务和展...

  • iOS:常见架构

    常见的架构有 MVC、MVP 和 MVVM。下面分别用代码做下演示。 MVC MVP MVP与MVC的区别在于:M...

  • MVC、MVP、MVVM

    MVC、MVP、MVVM 1、MVC和MVP的区别 区别在于MVC的MV之间可以通信,M的改变直接影响V的展示,不...

  • [iOS] MVVM

    几种常见的架构,MVC、MVP、MVVM,下面说说区别以及MVVM代码 MVC 相信大家都熟悉这个框架,这个也是初...

  • iOS-面试题6-架构

    目录: MVC-Apple MVC-变种 MVP MVVM 分层设计 架构与设计模式的区别 一. MVC-Appl...

  • mvc、mvp与mvvm

    1 mvc缺点 2 mvp a 简介 b 与mvc的区别 c 优缺点 d 使用建议 3 MVVM ...

  • 2017-09-10-MVC,MVP和MVVM的区别和联系

    MVC,MVP和MVVM的区别和联系 1, MVC(Model-View-Controller)是最常见的软件架...

  • MVX框架模式

    MVVM MVC MVP

  • Android MVVM + DataBinding的开发框架

    1.mvc,mvp,mvvm 前面讲了mvc和mvp的框架及其优缺点,如果说mvp是mvc的升级版,那mvvm算是...

网友评论

    本文标题:带你弄清楚MVC、MVVM、MVP的区别

    本文链接:https://www.haomeiwen.com/subject/niwmbctx.html