其他分享
首页 > 其他分享> > MVC/MVP/MVVM架构

MVC/MVP/MVVM架构

作者:互联网

目录

一、MVC

二、MVP

三、MVVM


一、MVC

MVC:Medol-View-Controller

Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;

View层 主要功能有获得数据,显示数据。决定界面技术(HTML,XML,Flash等)。界面排版;向Controller返回数据,决定数据传送方式,数据验证。 层是视图层。代表UI 组件,它负责将数据模型转化成UI 展现出来,

Controller层。集控制层。接受用户输入的数据。调用模型和视图完毕用户的需求。当用户单击超链接或者发送HTML表单时。控制器事实上不做不论什么的处理和输出,它仅仅是依据实际情况决定调用哪个模型或者视图去处理这个请求,然后决定使用哪个视图来显示返回的处理结果

 

经典MVC模式中对于Model和Controller的定义则较为模糊,以致在项目实践中对它们的职责产生了很多不同的理解。

二、MVP

 如果我们希望View和Model脱离关联的话,那么很容易就会使得所有的职能都落到Controller头上。

    MVP模式常见于Android,是谷歌官方推荐的App设计模式。从我找到的这张图上,可以非常明显地看出三者之间的关系。

 

Model只是一个数据通道,退化成了Repository,这样,Controller也就变成了Presenter,MVC也正式演化为MVP。所有的数据都由Presenter来驱动,所有的业务逻辑也由Presenter来实现。

MVP模式的优点是实现了View和Model的解耦,缺点是Presenter职责太重。

三、MVVM

MVVM : Model--View--ViewModel         ViewModel 是一个同步View 和 Model的对象

在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。

ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

  MVVM模式的优点是双向数据绑定带来的便利,Model完全不需要关心View。以数据为核心的视角非常新颖,并且在处理业务逻辑上也更加直观。缺点其实和MVP一样,只不过它是Model臃肿而已 

参考文章:(34条消息) 关于MVC、MVP、MVVM架构模式的区别_工藤_新一的博客-CSDN博客_mvp和mvvm区别

标签:MVP,MVVM,Controller,MVC,Model,View
来源: https://blog.csdn.net/m0_53644435/article/details/123583563