每当开始一个项目的时候都会面对如何选择开发的架构。目前使用比较对多的是MVC、MVP、MVVM,MVPVM这中设计架构我也是今天才看到,所以对其大致学习了下。本文主要是介绍这几种架构的控制链、控制流向,View 的变化如何反馈到Model,Model的变化如何作用到View上。
一、MVC
View 持有Controller,View把事件传递给Controller,Controller 再去去触发Model层的事件,Model更新完数据(网络、本地数据)之后,从Model触发View的更新事件。
image.png
二、MVP
MVP是MVC的封装和演化,Controller被拆分,只用处理View的点击事件、数据绑定等;View事件简单,只专注于视图的更新;Presenter独立出来,用于沟通View和Model之间的通信,Model不能直接作用于View 的更新,只能通过Presenter来通知View进行视图更新,比如showLoading(),showEmpty(),showToast()等等,这样View就完全被独立出来了,只是被动接受Presenter的命令,这样避免了View 有过多的逻辑处理,更加简单。Presenter会持有Model。Model 用于处理跟数据获取相关的逻辑,例如访问网络接口等。
image.png
三、MVVM
MVVM又称状态机制,View和ViewModel 是双向绑定的,ViewModel 数据发生改变会直接作用到View视图上;View 把事件传递给ViewModel,ViewModel去对Model进行操作并接受更新,再把更新反馈到View上。
image.png
四、MVPVM
MVPVM 其实就是MVP的变种,加入了MVVM事件特性,增加了ViewModel,功能分类:
View:负责视图更新的操作。
Model: 负责数据处理,网络数据请求、本地数据获取。
Presenter: 负责业务逻辑处理,包括View和Model调用和事件分发。
ViewModel: 数据通信的桥梁,绑定View 和 Model,添加数据变更监视器。
image.png
今天就先介绍到这里吧,以后还需要不断的学习,不断的充实自己。
网友评论