【Android】MVC,MVP,MVVM三种架构模式的区别

MVC

【Android】MVC,MVP,MVVM三种架构模式的区别_第1张图片
传统的代码架构模式,仅仅是对代码进行了分层,其中的C代表Controller,控制的意思

将代码划分为数据层,视图层,控制层,三层之间可以任意交互

MVP

【Android】MVC,MVP,MVVM三种架构模式的区别_第2张图片
MVP是在MVC基础上改进而来的一种架构,其中的P代表Presenter,主持的意思

它主要在以下两方面进行了改进:解耦,接口化

MVP架构规定,Model层和View层不能直接通信,要通过Presenter层进行调度,这样就实现了Model层和View层的解耦

同时,MVP架构还规定,Model层、View层、Presenter层必须通过接口进行交互,这样就明确了每层的功能定位

MVVM

【Android】MVC,MVP,MVVM三种架构模式的区别_第3张图片
MVVM是一个比较新的架构模式,其中的VM代表ViewModel,视图模型的意思

单从调用关系来说,MVVM和MVP看起来是完全一样的,但它们是两种完全不同的编程风格

MVP是接口化编程风格,而MVVM是响应式编程风格,它们是两种不同的东西,适合各自的场景,并不是好与坏,谁取代谁的关系

ViewModel中存放了与View相对应的数据,它们是相互绑定的

当View发生变化时,ViewModel中的值会自动同步,当ViewModel值被修改时,View会自动变化

这就是所谓的响应式编程,控件和数据都是可观察的,其中一方变化,另一方会自动收到通知

你可能感兴趣的:(android-疑难杂症研究,android,mvc,mvp,mvvm)