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