MVM
MVM github地址
MVM-第三方集成 github地址
前言
M:Model 数据层
V:View 显示层
M:Mediator 中间层
无论是MVP中的Presenter 还是MVVM中的ViewModel 其本质上都相当于中间人的性质,是连接Model层和View层的媒介。
中间层分别持有Model和View,我们在中间层 得到Model层实例获取数据,再通过回调的方式传递给View层,这里的回调无论是
接口回调,还是Observer等观察者模式,数据绑定,EventBus等类型的传递,其本质都是为了将数据传递给View层,在这方面无论是MVP、
MVVM或衍生出来的变种其行为目的都是一致的。
但由于数据的保存,处理方式,中间层的状态及更新UI方式的不同,才演化出这些架构。
使用
依赖jitpack
maven { url 'https://jitpack.io' }
从v1.1.0 起 mvm库把之前的lib_stat、lib_bugly、lib_crash 子库拆分到了mvm-thirdparty 仓库,mvm只保留开发常用的依赖库
//你可以直接使用
implementation 'com.github.mirkowu:mvm:$ext.mvm_version' //mvm总仓库
implementation("com.github.mirkowu:mvm-thirdparty:$ext.mvm_thirdparty_version") { //mvm-thirdparty总仓库
exclude group: "com.github.mirkowu.mvm", module: "lib_crash" //bugly 不含升级SDK 二选一
//exclude group: "com.github.mirkowu.mvm", module: "lib_bugly" //bugly 包含升级SDK 二选一
}
//也可以按需索取,部分库之间有依赖,请一同依赖
implementation "com.github.mirkowu.mvm:lib_base:$ext.mvm_version" //基础库
implementation "com.github.mirkowu.mvm:lib_widget:$ext.mvm_version" //UI组件库
implementation "com.github.mirkowu.mvm:lib_network:$ext.mvm_version" //网络库
implementation "com.github.mirkowu.mvm:lib_util:$ext.mvm_version" //工具库
implementation "com.github.mirkowu.mvm:lib_image:$ext.mvm_version" //图片加载库(默认glide)
implementation "com.github.mirkowu.mvm:lib_webview:$ext.mvm_version" //X5 + JsBridge 的WebView
implementation "com.github.mirkowu.mvm:lib_photo:$ext.mvm_version" //相册选择库
implementation "com.github.mirkowu.mvm:lib_qrcode: