view层 绿色框中的Activity/Fragment,继承至LifecycleActivity和LifecycleFragment,是UI控件的宿主。核心职责是:
1.更新UI控件显示,包括状态及数据,由ViewModel驱动;
2.监听UI事件及生命周期,驱动ViewModel。
View层不直接处理任何业务逻辑及数据加工。尽量做到瘦身,代码逻辑简约,减轻UI线程负担。
ViewModel层 蓝色框的ViewModel。只做业务逻辑操作,不支持有任何UI控件的引用。那数据的更新如何通知到View层,这就要仰仗LiveData。
Model层 橘黄色框的Repository及其下都是Model层。Model层就是数据层。数据来源有:
- 本地存储数据,如数据库、文件、SharedPreference(本质也是文件)
- 内存的缓存或临时数据
- 通过各种网络协议获取的远程数据
repository
是数据仓库,整合各路来源的数据,再统一暴露给ViewModel层使用。