MVC,MVP,MVVM架构模式

这篇博简单分析了一下MVC,MVP,MVVM三种架构。

1. MVC(Model-View-Controller)

功能划分:View即视图,表示用户界面;Model即模型,主要存储数据;Controller即控制器,负责业务逻辑。

数据关系:View接受到用户的交互请求 -> View将请求转交给Controller -> Controller操作Model更新数据 -> Model更新数据后通知View更新视图。

说明:MVC的数据流是单向的,但是View可以直接访问Model。另外,用户交互请求既可以发送给View,也可以直接发送给Controller。

使用场景:在MVC中,更关注的是Model不变,但同时存在多个不同的View。这里Model不依赖View,但View依赖于Model。

缺点:因为View可以直接访问Model,那么View中必定会有一些业务逻辑,导致View和Model之间存在耦合,不利于项目的维护。

2. MVP(Model-View-Presenter)

功能划分:在MVC的基础上将Controller改为Presenter,功能依然是控制器,负责业务逻辑部分。

数据关系:View接受用户交互请求 -> View将请求转发给Presenter -> Presenter操作Model更新数据 -> Model更新数据后通知Presenter数据更新 -> Presenter更新View数据

说明:在MVP中,View和Model之间不会发生直接联系,都是通过Presenter来传递,这也是MVC和MVP之间的区别。

使用场景:当项目中有一个数据对多个不同视图显示,且逻辑经常发生变化时,MVP架构是一个很好的选择,可以将UI、逻辑和数据隔离开来。

3. MVVM(Model-View-ViewModel)

功能划分:基于MVP,将Presenter改成了ViewModel

数据关系:View接受用户交互请求 -> View将请求转发给ViewModel -> ViewModel操作Model更新数据 -> Model更新数据后通知ViewModel数据更新 -> ViewModel更新View数据

 

说明:MVVM的数据流向是双向绑定,View改变自动反映在ViewModel中,反之亦然。

使用场景:可以兼容MVC和MVP的使用场景,低耦合,可测试性强。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值